类名 | 说明 |
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的集合 } } };