JSON反序列化
JArray ,JObject 及反序列化实体类等问题
/* JArray 数组*/
string jsonText = "[{'a':'aaa','b':'bbb','c':'ccc'},{'a':'aaa2','b':'bbb2','c':'ccc2'}]";
#region one
JArray ja = (JArray)JsonConvert.DeserializeObject(jsonText);
//获取数值
foreach(JObject jo in ja){
string a = jo["a"].ToString();
}
//或者
JObject o = (JObject)ja[1];
string b = o["a"].ToString();
#endregion
#region two
var mJObj = JArray.Parse(jsonText);
IList<JToken> delList = new List<JToken>();
foreach (var ss in mJObj ) //查找某个字段与值
{
if(((JObject) ss)["a"].ToString()=="aa")
delList.Add(ss);
}
#endregion
/* 非数组 */
string data = "{'a':'aaa','b':'bbb','c':'ccc'}";
var json = JObject.Parse(data);
//Console.WriteLine(json["a"]);
//ja.Add(json);添加
//使用JObject读写字符串:
JObject j = JObject.Parse(data);
IEnumerable<JProperty> properties = j.Properties().ToArray();
//IEnumerable<JProperty> properties = JObject.Parse(data).Properties();
foreach (JProperty item in properties)
{
string key = item.Name;
string value = item.Value.ToString();
}
//List<Customer> _list = JsonConvert.DeserializeObject<List<Customer>>(jsonText);
#region
string d = "{"key": "123", "value": {"id":"01","name": "zhang"}}";
JObject json = JObject.Parse(d);
IEnumerable<JProperty> pp = JObject.Parse(json["value"].ToString()).Properties();
foreach (JProperty item in properties)
{
//循环获取数据
//item.name=id
//item.value = 01
}
#endregion
在处理数组问题时 JArray
非数组用 JObject