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);
}
C#利用newtonsoft.json读取.so配置文件内容的更多相关文章
- 第三节:框架前期准备篇之利用Newtonsoft.Json改造MVC默认的JsonResult
一. 背景 在MVC框架中,我们可能经常会用到 return Json(),而Json方法内部又是一个JsonResult类,那么JsonResult内部又是什么原理呢?在MVC框架中,各种xxxRe ...
- Newtonsoft.Json读取txt文件中json数据并存到SQL service 数据库!
using System; using System.Collections.Generic; using System.Text; using System.IO; using Newtonsoft ...
- 利用Newtonsoft.Json实现Json序列化与反序列化
在项目中用到了Newtonsoft.Json来实现序列化和反序列化,在这里写下实现代码. 1.创建类用于排除不序列化的属性 public class ExcludePropertiesContract ...
- C# 利用Newtonsoft.Json进行Json序列化与反序列化
我们可以通过DataContractJsonSerializer类来序列化一个对象为json字符串. public class JsonConvert<T> { public static ...
- C# 利用Newtonsoft.Json 序列化生成Json数据
现在需要将一些数据转化成json格式返回给调用者, 使用Newtonsoft.Json.DLL库来帮助我们序列化 举例: {"300033":{"MC":&qu ...
- java web filter读取classpath配置文件内容
以下demo,从类路径classpath中获取venus.properties(本项目中用到的文件),思路是在初始化的时候读取,然后放在局部变量里面. package club.codeapes.we ...
- C# Newtonsoft.Json 读取文件,返回json字符串
第一种方法: public object getData2() { string content; using (StreamReader sr = new StreamReader(Server.M ...
- 利用Properties来读取JDBC配置文件
看到这样的标题,肯定会有人问,要连接数据库我直接验证,加载驱动,建立连接等等按步骤来不就行了,
- CSharp读取json配置文件内容
步骤 读取配置文件转换成字符串,代码如下 string contents = System.IO.File.ReadAllText("config.json"); 注意:该语句会抛 ...
随机推荐
- 怎样解决非管理员账户添加Notepad++右键菜单的批处理的问题?
bat脚本如下: @echo off color 1e title 将Notepad++增加到右键菜单(或者去关联) goto :menu :menu cls echo. echo. 1 将Notep ...
- elk 7.2
Elasticsearch 7.0开始内置了Java环境 1.jvm.options配置建议 Xmx和Xms设置成一样 Xmx不要超过机器内存的50% 不要超过30GB https://www.ela ...
- 如何解决phpMyAdmin缺少mcrypt 扩展
出现问题:在安装配置phpMyAdmin管理mysql数据库的时候,打开phpMyAdmin登录页面,出现下面的错误提示: 缺少 mcrypt 扩展.请检查 PHP 配置 以CentOS 6.0系统为 ...
- 关于微信开发者工具创建项目和导入项目半天不响应或者socket hang out
笔者的电脑系统是macOS Catalina(10.15),其实之前的系统版本也遇到一样的问题,网络环境是学校实验室. 解决办法:连接手机Wi-Fi 原理:目前不清楚,清楚的小伙伴可在下方留言交流
- JDK8在接口中引入的default
default关键字介绍 default是在java8中引入的关键字,也可称为Virtual extension methods——虚拟扩展方法.是指,在接口内部包含了一些默认的方法实现(也就是接口中 ...
- 201871010107-公海瑜《面向对象程序设计(java)》第十五周学习总结
201871010107-公海瑜<面向对象程序设计(java)>第十五周学习总结 项目 内容 这个作业属于 ...
- 获取 Docker 容器的 IP 地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' yourContainerIdOrContainerName
- Eclipse的server选项卡中找不到tomcat配置项
1.在Eclipse中,如果想开发j2ee,必须要先安装插件.至于具体的插件安装方法,这里不再赘述. 2.当进行到配置tomcat服务器的时候,有时候会出现这种情况: 3.在server选项卡的Run ...
- 在程序中修改IP win7 winXP(参考1)
https://blog.csdn.net/bbdxf/article/details/7548443 Windows下程序修改IP的三种方法 以下讨论的平台依据是Window XP + SP1, 不 ...
- [LeetCode] 862. Shortest Subarray with Sum at Least K 和至少为K的最短子数组
Return the length of the shortest, non-empty, contiguous subarray of A with sum at least K. If there ...