zoukankan      html  css  js  c++  java
  • 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();

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

  • 相关阅读:
    HTML5学习记录
    CSS学习记录
    HTML扩展(thead,tbody,tfoot标签的使用)
    测删除功能
    jmeter-连接数据库
    jmeter-正则表达式提取器
    jmeter常用函数
    java基础(二)
    git基本使用
    波特的钻石模型
  • 原文地址:https://www.cnblogs.com/chsword/p/Newtonsoft_new_3_0.html
Copyright © 2011-2022 走看看