zoukankan      html  css  js  c++  java
  • Json to JObject转换的使用方法

    类名 说明
    JObject
     用于操作JSON对象
    JArray
     用语操作JSON数组
    JValue
     表示数组中的值
    JProperty
     表示对象中的属性,以"key/value"形式
    JToken
     用于存放Linq to JSON查询后的结果
    使用Linq to JSON

    1.查询
    首先准备Json字符串,是一个包含员工基本信息的Json

    string json = "{"Name" : "Jack", "Age" : 34, "Colleagues" : [{"Name" : "Tom" , "Age":44},{"Name" : "Abel","Age":29}] }";
    //将json转换为JObject
                JObject jObj = JObject.Parse(json);
                //通过属性名或者索引来访问,仅仅是自己的属性名,而不是所有的
                JToken ageToken =  jObj["Age"];
                Console.WriteLine(ageToken.ToString());

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

    //将json转换为JObject
                JObject jObj = JObject.Parse(json);
                var names=from staff in jObj["Colleagues"].Children()
                                 select (string)staff["Name"];
                foreach (var name in names)
                    Console.WriteLine(name);
    "Children()"可以返回所有数组中的对象

    转自  增删改成都有,可以反复观看

    增加几个平常用到的实例

    // 一个JAarry 数组的类型
    [{"SKU":"001X","SN":""},{"SKU":"00020","SN":""},{"SKU":"00099","SN":""},{"SKU":"7-M03910","SN":"049E"}]
    var skus = new JArray(items.Select(l => new JObject { new JProperty("Sku", l.Element("itemCode").Value), new JProperty("SN",l.Element("serialNo").Value), })); var obj = new JObject { {"Head", new JObject { { "TransId", transid }, { "TransCode", "X1008" } } }, {"Body", new JObject { { "OrderSN", code1 }, { "ERPNo", code2 }, { "DeliveryNumber", code3 }, { "DeliveryDateTime", code4 }, { "SNs", skus }//这里没有层级关系 } } };

    构造层级的JObject

    var Orderline = new JArray(so.body.detail.Select(l => new JObject
                              {
                                new JProperty("itemCode", l.PartNo),
                                new JProperty("itemId", ""),
                                new JProperty("planQty", l.GoodsNumber)

                              }));

    //封装xml
                    var obj = new JObject
                        {
                            {"?xml",new JObject{
                                    {"@version","1.0" },
                                    {"@encoding","utf-8"}}
                            },
                            { "request", new JObject{
                                    {"deliveryOrder", new JObject
                                        {
                                            {"订单号",so.body.OrderSN },
                                            {"订单类型","XSDD" }, 
                                            {"senderInfo",
                                                 new JObject{
                                                               {"company","" },
                                                               { "name", name },                                                           
                                                               { "mobile",mobile },
                                                               { "city",  city },
                                                               { "detailAddress", detailAddress },
                                                            }
                                             },
                                             {"receiverInfo",
                                                 new JObject{
                                                               {"company","" },
                                                               { "name", so.body.Consignee },                                                          
                                                               { "mobile",so.body.ShipMobile }, 
                                                               { "city",so.body.City },                                                          
                                                               { "detailAddress", so.body.Address },
                                                            }
                                             },
                                             {"customProps",
                                                 new JObject{
                                                               {"payMode","" },
                                                               { "carryMode", "" },
                                                               { "isInsured", "" },
                                                               { "insuranceMoney", "" },
                                                               { "consignee", "" },
                                                            }
                                             },
                                             {"remark","" }
                                        }
                                    },
                                { "orderLines",new JObject{{ "orderLine", Orderline } } }//这里是有个层级关系的,orderLines下是orderline的集合
                            }
                            }
                        };
  • 相关阅读:
    POJ 1469 COURSES 二分图最大匹配
    POJ 1325 Machine Schedule 二分图最大匹配
    USACO Humble Numbers DP?
    SGU 194 Reactor Cooling 带容量上下限制的网络流
    POJ 3084 Panic Room 求最小割
    ZOJ 2587 Unique Attack 判断最小割是否唯一
    Poj 1815 Friendship 枚举+求最小割
    POJ 3308 Paratroopers 最小点权覆盖 求最小割
    1227. Rally Championship
    Etaoin Shrdlu
  • 原文地址:https://www.cnblogs.com/ZkbFighting/p/12778386.html
Copyright © 2011-2022 走看看