【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);
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);
相关文章推荐
- Window Phone 7 解析 Json 数据
- json教程之C#开发json解析类
- iphone开发 使用TouchJSON框架 解析JSON
- Android新浪微博开发(3)JSon解析
- iphone开发之Json数据的解析
- json教程之C#开发json解析类
- ios开发 XML和JSON解析
- iphone开发之iphone解析xml&json-1
- window phone7.1 天气预报教程(二)WebClient获取天气和json数据解析显示
- 通过Newtonsoft.Json把类放在ViewState里再解析
- 程序开发基础学习五(json配置、解析文件,c++篇)
- iphone开发之iphone解析xml&json-2
- iphone开发之iphone解析xml&json-1
- iphone开发 使用TouchJSON框架 解析JSON
- fastjson开发学习(二)---对返回的json进行解析
- 【Android应用开发】-(17)获取Google天气预报通过Xml和JSON解析数据
- (ipad/iphone开发)分享一个好工具,一个检测当前json为何不能解析的网站
- iPhone开发笔记(9)ASIHttpRequest和json-framework实现json解析(iOS客户端)
- iPhone开发之Json数据的解析
- Android开发视频第二季之十二:JSON数据解析