C#读取解析JSON文件(含中文)

   我用QT&C++写了Json文件填写编辑的功能,因为不能重复更新word文件中的书签,所以写了一段C#读Json文件的函数,以便于在C#中更新word的书签。发现C#处理json文件也非常方便。

一、读JSON文件

划重点:Encoding.Default保证中文正常显示

StreamReader streamReader = new StreamReader(jsonFile,Encoding.Default);          
 string jsonRoot = streamReader.ReadToEnd();  //读全部json        
 dynamic ObjRoot = JsonConvert.DeserializeObject<dynamic>(jsonRoot);  //转json对象    

二、拆分JSON文件

    我习惯于把参数都放在一个json文件中,好处是管理起来比价方便。缺点是在C++中申请char 数组时长度一定要足够长。而在C#中就放在string中就不用管长度的问题。
    当json文件很复杂的情况下,代码会很长不易于维护,因此我习惯于把json文件中的参数拆分出来,这就需要拆分JSON文件。
   拆分json很简单,取出子串,然后转换成json数据格式即可。
	JSON文件的一级对象如下拆分:
string jsonProjInfo = ObjRoot["ProjInfo"].ToString(); //取子串
dynamic ObjProjInfo = JsonConvert.DeserializeObject<dynamic>(jsonProjInfo);  //子串转对象
	JSON文件的二级对象如下拆分:
string jsonCheckBox = ObjRoot["PreExplora"]["CheckBox"].ToString();
dynamic ObjCheckBox = JsonConvert.DeserializeObject<dynamic>(jsonCheckBox)

解析json中的变量

bool bSelected = ObjCheckBox[i]["selected"]  // 布尔变量
string strItem=ObjCheckBox[i]["Item"].ToString() //字符变量

结束语

C#处理json文件的效率不是最快的,但代码很简洁,便于维护。在数据量不大的情况下用C#处理json也是一个好的选择。我刚接触C#和QT,不当之处请谅解。

猜你喜欢

转载自blog.csdn.net/imz2y/article/details/105947100