zoukankan      html  css  js  c++  java
  • JObject、JArray对JSON操作

      增删改查:

    var cardJson = "['身份证','银行卡','门禁卡']";
                var cardJArray = JArray.Parse(cardJson);
    
                var p = new Person { Name="fan",Age=12,Dog=new Dog { Name="奶牛"} };
                var pJson = JsonConvert.SerializeObject(p);
                
                JObject jobj = JObject.Parse(pJson);
                
                //添加属性
                jobj["NickName"] = "fan";
                jobj["Wifes"] = new JArray("rose", "lisa");
                ((JArray)jobj["Wifes"]).Add( "july");
                jobj["Cards"] = cardJArray;
                //修改属性
                jobj["Name"] = "li";
                jobj["Age"] = 9;
                jobj["Dog"]["Name"] = "阿黄";
                ((JArray)jobj["Wifes"])[0] = "roses";
                //插入属性
                jobj.Property("Name").AddBeforeSelf(new JProperty("ID", 1));
                //删除属性
                jobj.Property("Age").Remove();
                ((JArray)jobj["Wifes"])[2].Remove();
                //查找
                //遍历属性
                var props = jobj.Children().Values();
                foreach (var prop in props)
                {
                    if (!(prop is JObject) && !(prop is JArray))
                    {
                        Console.WriteLine(prop.ToString());
                    }               
                }
                //遍历数组
                var cardList = ((JArray)jobj["Cards"]);
                foreach (var card in cardList)
                {
                    Console.WriteLine(card.ToString());
                }
                //强类型读取
                Console.WriteLine(jobj.Value<int>("ID")); 
                var p2 = jobj.ToString();

    对象->JObject->JSON:

    var json = new JObject(
            new JProperty("status", result.Status.ToString()),
            new JProperty("results", new JObject(result.Entries.Select(pair =>
                new JProperty(pair.Key, new JObject(
                    new JProperty("status", pair.Value.Status.ToString()),
                    new JProperty("description", pair.Value.Description),
                    new JProperty("data", new JObject(pair.Value.Data.Select(
                        p => new JProperty(p.Key, p.Value))))))))));
    
    
    var str = json.ToString();

    JObject合并:

    jObj.Merge(JObject.Parse(userTranslate.ValueJSON));

    JObject查找:

    jObject.SelectToken($".{path}");//根据路径查找
  • 相关阅读:
    C macro : the " do { ... } while(0)" magic
    sscanf()函数
    poj-1200-hash-
    hduoj-1735 简单的贪心算法
    hduoj -2570-简单的贪心算法入门
    分治算法应用-最近点对的最小距离-hdu 1007 Quoit Design
    分治算法(转载)
    快速幂总结
    poj 1065 贪心算法
    toj ~3988~递归二叉树三种遍历的转换
  • 原文地址:https://www.cnblogs.com/fanfan-90/p/12659937.html
Copyright © 2011-2022 走看看