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的集合
                            }
                            }
                        };
  • 相关阅读:
    利用 windbg 脚本动态调试代码
    GetHotkeys 通过驱动获取系统热键 [ 顺便写了 SSDT + Shadow SSDT ]
    获取系统热键链表windbg脚本 GetHotkeys windbg script
    利用SetSysColor函数实现主题修改
    Javascript文件夹选择框的两种解决方案
    Javascript使用AjaxPro构建自动补全,同时自动生成待输行【原创】
    在UpdatePanel中弹出对话框
    JS动态创建表格比较【转】
    JS精美日历时间控件
    myeclipse快捷键大全【转】
  • 原文地址:https://www.cnblogs.com/ZkbFighting/p/12778386.html
Copyright © 2011-2022 走看看