zoukankan      html  css  js  c++  java
  • [Json.net]Linq to Json

    引言

    上篇学习了json.net的基本知识,这篇学习linq to json。

    上篇文章:[Json.net]快速入门

    Linq to Json

    Linq to Json是用来快速操作json对象的,包括:查询,修改和创建操作。

    创建json数组和对象

    一些相关的类:

    创建Json对象

    引入命名空间:using Newtonsoft.Json.Linq;

    1             JObject person = new JObject();
    2             person.Add(new JProperty("Name", "Wolfy"));
    3             person.Add(new JProperty("Age", 25));
    4             person.Add("Leader", new JObject(new JProperty("Name", "老大"), new JProperty("Age", 29), new JProperty("Leader", null)));
    5             Console.WriteLine(person.ToString());
    6             Console.Read();

    结果:

    JObject.JArray数组

    测试

    1             JArray arr = new JArray();
    2             arr.Add(new JValue(1));
    3             arr.Add(new JValue(2));
    4             arr.Add(new JValue(3));
    5             Console.WriteLine(arr.ToString());

    结果:

     Linq to Json

    查询

    1             string json = "{"Name":"wolfy","Age":25,"Colleagues":[{"Name":"Tom","Age":24},{"Name":"Jack","Age":22}]}";
    2             //将json转换为JObject
    3             JObject jobj = JObject.Parse(json);
    4             //通过属性名或者索引来访问,仅仅是自己的属性没,而不是所有的
    5             JToken ageToken = jobj["Age"];
    6             Console.WriteLine(ageToken.ToString());

    结果:

    获取该员工的所有同事的所有姓名:

    1             var names = from n in jobj["Colleagues"].Children()
    2                         select (string)n["Name"];
    3             foreach (var item in names)
    4             {
    5                 Console.WriteLine(item);
    6             }

    结果:

    简化查询

    查询所有同事的姓名:

    1            var names = jobj.SelectToken("Colleagues").Select(p => p["Name"]).ToList();
    2             foreach (var item in names)
    3             {
    4                 Console.WriteLine(item);
    5             }

    结果:

    修改

    修改json字符串中名字为Wolfy的年龄:

    1  JObject jobj = JObject.Parse(json);
    2  jobj["Age"] = 26;
    3  Console.WriteLine(jobj.ToString());

    结果:

    修改同事Tom的年龄:

    1           JToken colleagues = jobj["Colleagues"];
    2             colleagues[0]["Age"] = 50;
    3             //修改后再赋给对象
    4             jobj["Colleagues"] = colleagues;
    5             Console.WriteLine(jobj.ToString());

    结果:

    删除

    删除wolfy的同事:

    1             //将json转换为JObject
    2             JObject jobj = JObject.Parse(json);
    3             jobj.Remove("Colleagues");
    4             Console.WriteLine(jobj.ToString());

    结果:

    总结

    Linq to json的学习就到这里,从网上找了一篇文章,自己实践一下,多少还是有收获的。

    参考

    http://www.360doc.com/content/13/0328/22/11741424_274568564.shtml

  • 相关阅读:
    Event Recommendation Engine Challenge分步解析第五步
    Event Recommendation Engine Challenge分步解析第四步
    Event Recommendation Engine Challenge分步解析第一步
    Event Recommendation Engine Challenge分步解析第三步
    Event Recommendation Engine Challenge分步解析第二步
    pickle详解
    服从正态分布的样本似然估计的期望和方差
    实战Google深度学习框架-C5-MNIST数字识别问题
    python如何直接控制鼠标键盘
    需要注意的面试题
  • 原文地址:https://www.cnblogs.com/wolf-sun/p/3671792.html
Copyright © 2011-2022 走看看