• Json.net/Newtonsoft 3.0 新特性JObject/Linq to Json


    Json.net codeplex :http://www.codeplex.com/Json

    原本感觉Newtonsoft.Json和.net自己的JavaScriptSerializer相差无几,所以将工程里的Json都换成了JavaScriptSerializer来实现,可是近几日遇到一个需求.在反序列化时我并没有预先定义好的类,而是要以字典形式读取.

    于是我自己实现了一个类,由于没有模型对象,所以所有的Json读取和检测过程都要重新写过.

    后来却发现Newtonsoft中已经提供了我需要的功能,甚至还提供了Json的Linq查询.

    JObject

    下面用个实例来搞定它的读写

    1.Json是这样的

    {title:123,body:456,list:{title:'这是一个标题',body:'what'}}
    2.我要将其中几项都搞出来,代码:
    static void Main(string[] args)
    		{
    			string str = "{title:123,body:456,list:{title:'这是一个标题',body:'what'}}";
    			JObject o = JObject.Parse(str);
    			Console.WriteLine(o["title"]);
    			Console.WriteLine(o["body"]);
    			Console.WriteLine(o["list"]["title"]);
    			Console.WriteLine(o["list"]["body"]);
    			Console.ReadKey();
    		}
    3.这样就输出了:
    123
    456
    "这是一个标题"
    "what"
     
    不足:字符串还是案字符串输出带"",但我想这也不是问题.Trim就好了

    Linq to Json

    基本Linq的都差不多,可以参考Json.net文档.这个并未深入研究

    	string str = "{title:123,body:456,list:{title:'这是一个标题',body:'what'}}";
    			JObject o = JObject.Parse(str);
    
    			var s =
    			  from p in o.Children()
    			  select p;
    
    			foreach (var item in s)
    			{
    				Console.WriteLine(item);
    			}
    
    			Console.ReadKey();

    介绍完了,欢迎讨论,欢迎留言批评

  • 相关阅读:
    14.挂载硬件设备
    13.Linux文件存储系统
    12.su 命令与sudo 服务
    11.文件访问控制列表
    10. 文件权限与归属
    9. Linux用户身份和能力
    8. Linux重要的环境变量
    7. Linux命令行的通配符、转义字符
    6. Linux输入输出重定向
    5. Linux文件目录管理和打包压缩与搜索命令
  • 原文地址:https://www.cnblogs.com/chsword/p/Newtonsoft_new_3_0.html
Copyright © 2020-2023  润新知