json的使用(JObect,JsonData,JArray)

json的使用(JObect,JsonData,JArray)

JObect与JsonData的区别

JsonData是JObect的简化版本

2.转换过程容易出的bug

JsonData:当里面存在null就无法转换

解决方案: JsonData teamjd = JsonMapper.ToObject(FindDoctor("0",orgID).Replace(":null", ":\"\"")); //将JsonData中的null替换为“”

JObect :转化为JObect失败

解决方案:失败原因是转化对象是数组要转换为JArray JArray jArray=JArray.Parse(str);

JObect :jArray[0]不能直接转换为JObect

解决方案:JObject jObject = jArray[0] as JObject;

JObect:当JObect对象内部存在数组无法通过Count取值

解决方案:

foreach (JToken field in jObject["data"]["doctors"]) {

if ((field["name"].ToString()).Equals(docName.Trim())) { doctorid = field["id"].ToString(); break; } }

3.判断json值为空

JObect: jb.ToString().Equals("") 若不为空就会返回jsonObect

JsonData : jd.Count==0

4.json对象的转换

JsonData :当内部存在数组

json["userFamilyHistory"] = new JsonData();

json["userFamilyHistory"].SetJsonType(JsonType.Array); json["userFamilyHistory"].Add(userFamilyHistory);

JObect:当内部存在数组

List listHistory = new List();

Object other = new JObject();

...............

listHistory.Add(other);

jObject.Add(new JProperty("history", listHistory));

注意:JsonConvert.SerializeObject() 可以将类,datatable直接转化为json字符串

5.对json应用的小技巧

//根据json创建表

private void createTable(JArray jArray,string tabName)

{

JObject jObject = jArray[0] as JObject;

//配置签约表

DataTable signTb = new DataTable(tabName);

foreach(var item in jObject)

signTb.Columns.Add(item.Key);

foreach (JObject obj in jArray)

{

DataRow newrow = signTb.NewRow();

foreach (var item in obj)

{

newrow[ item.Key ] = item.Value;

}

signTb.Rows.Add(newrow);

}

CommonRse.ds[tabName] = signTb.Copy();

}

相关推荐

贴墙听声音技巧?贴墙听声音可以用什么东西加强隔音?
OLED发光原理、面板结构及OLED关键技术深度解析
bt365体育官网育

OLED发光原理、面板结构及OLED关键技术深度解析

📅 08-19 👁️ 7620
《王者荣耀》铠和赵云哪个英雄厉害一点 铠赵云对比分析