C#利用newtonsoft.json读取.so配置文件内容

今天花 了点时间来使用 C#读取json文件 ,文件后缀为 .so文件 ,也是基于文件流的形式 获取 对象 ,然后解析;

之所以尝试 使用 json读取 ,是因为其配置文件的格式 更为友好 和方便,直观 且形象,当然 XML也是很方便的;

主要是多了一种读取 配置文件的方式;特记录下来,方便后续项目实际使用;

格式如图:

需要注意的是这种格式需注意编辑;

当然通过代码初始化和写入的话,会自动生成如上的格式的,本文只完成如何读取配置文件的信息;

引用的程序集如:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Newtonsoft.Json;
using System.IO;
using Newtonsoft.Json.Linq;
//获取 jobject的对象,及读取键值的方法 class JsonConfigHelper
    {
        public JObject jObject = null;
        public string this[string key]
        {

            get
            {
                string str = "";
                if (jObject != null)
                {
                    str = GetValue(key);
                }
                return str;
            }
        }
        public JsonConfigHelper(string path)
        {
            jObject = new JObject();
            using (System.IO.StreamReader file = System.IO.File.OpenText(path))
            {
                using (JsonTextReader reader = new JsonTextReader(file))
                {
                    jObject = JObject.Load(reader);
                }
            };
        }
        public T GetValue<T>(string key) where T : class
        {
            return JsonConvert.DeserializeObject<T>(jObject.SelectToken(key).ToString());
        }
        public string GetValue(string key)
        {
            return Regex.Replace((jObject.SelectToken(key).ToString()), @"\s", "");
        }

    }

读取不同格式的键的内容的方法:

 try
            {
                JObject myjobj;
                JsonConfigHelper helper = new JsonConfigHelper(filepath);
                myjobj = helper.jObject as JObject;//获取Jobject对象

                int i = myjobj.Count;  //当前对象的节点的数量
                string str5 = (string)myjobj["sex"];//直接读取当前键值
                MessageBox.Show(str5);

                JObject myjobj666;
                myjobj666 = myjobj["Colleague"]["财务部"] as JObject;//当前节点下的子节点作为jobject对象
                //实际测试过程中会异常报错未实例化,这是因为配件文件的保存格式问题,UTF-8
                string str3 = (string)myjobj666["account"];
                MessageBox.Show(str3);

                string str1 = helper["SOCLASS[0].Name"];//
                MessageBox.Show(str1);

                JToken jken = myjobj["SOCLASS"];//键对象["SO"]内存在多组数据,读取的格式

                foreach (JObject myobject in jken)
                {
                    string strr = (string)myobject["Name"];//读取每组节点下的某个键值的数据
                    MessageBox.Show(strr);
                }
                if (myjobj.ContainsKey("SOCLASS"))  //判断jobject对象中是否存在"SO"这个键对象
                {
                    MessageBox.Show("done");
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
        

原文地址:https://www.cnblogs.com/cherenshuishou4451/p/11754039.html

时间: 2024-10-08 20:39:50

C#利用newtonsoft.json读取.so配置文件内容的相关文章

第三节:框架前期准备篇之利用Newtonsoft.Json改造MVC默认的JsonResult

一. 背景 在MVC框架中,我们可能经常会用到 return Json(),而Json方法内部又是一个JsonResult类,那么JsonResult内部又是什么原理呢?在MVC框架中,各种xxxResult便捷了我们的开发,但这些都不是本节的重点,在这里我们只需要知道JsonResult内部的原理即可. JsonResult内部原理是基于 JavaScriptSerializer来做的序列化,在使用过程中,有这么几个弊端: ①:DateTime类型返回给前端是这个玩意:\/Date(15350

C# NEWTONSOFT.JSON读取json文件

public static void Readjson() { string jsonfile = "D://tsconfig1.json"; using (System.IO.StreamReader file = System.IO.File.OpenText(jsonfile)) { using (JsonTextReader reader = new JsonTextReader(file)) { JObject o = (JObject)JToken.ReadFrom(rea

C# Newtonsoft.Json 读取文件,返回json字符串

第一种方法: public object getData2() { string content; using (StreamReader sr = new StreamReader(Server.MapPath("/Content/test.json"))) { content = sr.ReadToEnd(); } JsonSerializerSettings jSetting = new JsonSerializerSettings { NullValueHandling = N

如题,properties配置文件在项目中是经常用到的,那么读取properties配置文件的方法有哪些呢?

方法一:可以通过java.util.Properties类的load()方法 1 InputStreamin=lnewBufferedInputStream(newFileInputStream(name)); 2 Propertiesp=newProperties(); 3 p.load(in); 方法二:利用spring来读取properties配置文件org.springframework.beans.factory.support.PropertiesBeanDefinitionRead

Spring利用propertyConfigurer类 读取.property数据库配置文件

1.Spring的框架中,org.springframework.beans.factory.config.PropertyPlaceholderConfigurer类可以将.properties(key/value形式)文件中 一些动态设定的值(value),在XML中替换为占位该键($key$)的值, .properties文件可以根据客户需求,自定义一些相关的参数,这样的设计可提供程序的灵活性. 2.在Spring中,使用PropertyPlaceholderConfigurer可以在XM

Go语言之读取yaml配置文件,转换成struct结构,json形式输出

1.例子1 1.1.yaml文件内容如下: host: localhost:3306 user: root pwd: 123456 dbname: test 1.2.代码如下: //将yaml文件,转换成对象,再转换成json格式输出 package main import ( "encoding/json" "fmt" "gopkg.in/yaml.v2" "io/ioutil" ) //定义conf类型 //类型里的属性,

.net core读取json格式的配置文件

在.Net Framework中,配置文件一般采用的是XML格式的,.NET Framework提供了专门的ConfigurationManager来读取配置文件的内容,.net core中推荐使用json格式的配置文件,那么在.net core中该如何读取json文件呢? 1.在Startup类中读取json配置文件 1.使用Configuration直接读取 看下面的代码: public IConfiguration Configuration { get; } Configuration属

Asp.Net中使用Newtonsoft.Json转换,读取,写入

using Newtonsoft.Json; using Newtonsoft.Json.Converters; //把Json字符串反序列化为对象 目标对象 = JsonConvert.DeserializeObject(JSON字符串, typeof(目标对象)); //把目标对象序列化为Json字符串 string Json字符串 = JsonConvert.SerializeObject(目标对象); 1.引用Newtonsoft.Json.dll 2.在项目中添加引用.. 序列化和反序

python + selenium -- 读取配置文件内容

任何一个项目,都涉及到了配置文件和管理和读写,python 支持很多配置文件的读写.本文记录使用 python + selenium自动化过程中,学习的使用python自带的ConfigParser类读取ini配置文件的方法. 1.在所在项目新建一个文件夹,如config,在配置文件中新建一个文件,如config.ini 配置文件填写内容如下: 1 [broswer_name] 2 broswer = 'firefox' 3 4 [server] 5 server = 'http://www.b