您的位置:首页 > Web前端 > JavaScript

【Newtonsoft.Json】Window Phone Json解析开发包

2014-11-26 20:09 274 查看
  WP从服务器、API交换数据一般都是用JSON格式字符串。   下面介绍用Newtonsoft.Json来处理JSON。   准备   1.到 http://json.codeplex.com/ 下载Newtonsoft.Json类库(Json45r10.zip)。

  2.解压引用Newtonsoft.Json.dll。

  解析   目标JSON字符串:   {   "Name":"I",   "Age":25,"   Family":   [   {   "Name":"mom",   "Age":50,   "Family":[]   },   {   "Name":"dad",   "Age":50,   "Family":[]   }   ]   }   先根据目标JSON写一个Person类用来存放数据: public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public List<Person> Family { get; set; }
}   开始解析: string jsonString = "{/"Name/":/"I/",/"Age/":25,/"Family/":[{/"Name/":/"mon/",/"Age/":50,/"Family/":[]},{/"Name/":/"dad/",/"Age/":50,/"Family/":[]}]}";
//得到json对象(jsonString不是json字符串这里就会抛出异常)
JObject json = JObject.Parse(jsonString);
Person person = new Person();
//得到属性Name的值
person.Name = (string)json["Name"];
//Age的值
person.Age = (int)json["Age"];
//用下面的方法获得Family的值
person.Family = GetPersonListFromJArray(json["Family"] as JArray);
private List<Person> GetPersonListFromJArray(JArray jArray)
{
List<Person> list = new List<Person>();
if (jArray != null)
{
foreach (JObject jObject in jArray)
{
Person person = new Person();
person.Name = (string)jObject["Name"];
person.Age = (int)jObject["Age"];
person.Family = GetPersonListFromJArray(jObject["Family"] as JArray);
list.Add(person);
}
}
return list;
}   这样json就解析出来啦。下面我们看看一些小细节。   1.json["属性名"].Type可以知道这个属性的类型。

  2.json["属性名"]是那个类型才能转为其对应的类型,否则为null。

  构造   简单,就一句代码。   //这个person就是之前jsonString解析出来那个person   string s = JsonConvert.SerializeObject(person);   //这个person就是之前jsonString解析出来那个person   string s = JsonConvert.SerializeObject(person);

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: