【Newtonsoft.Json】Window Phone Json解析开发包
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);
【Newtonsoft.Json】Window Phone Json解析开发包的更多相关文章
- [转] FastJson---高性能JSON开发包
原文地址: FastJson---高性能JSON开发包 Fastjson介绍 Fastjson是一个Java语言编写的JSON处理器,由阿里巴巴公司开发.1.遵循http://json.org标准,为 ...
- json-lib-2.4-jdk15.jar所需全部JAR包.rar java jsoup解析开彩网api接口json数据实例
json-lib-2.4-jdk15.jar所需全部JAR包.rar java jsoup解析开彩网api接口json数据实例 json-lib-2.4-jdk15.jar所需全部JAR包.rar ...
- alibaba的FastJson(高性能JSON开发包),fastjson 使用demo
这是关于FastJson的一个使用Demo,在Java环境下验证的 class User{ private int id; private String name; public int getId( ...
- alibaba的FastJson(高性能JSON开发包)
这是关于FastJson的一个使用Demo,在Java环境下验证的 class User{ private int id; private String name; public int getId( ...
- alibaba的FastJson(高性能JSON开发包) json转换
http://www.oschina.net/code/snippet_228315_35122 class User{ private int id; private String name; pu ...
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
先看一下我要实现的功能界面: 这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面 ...
- 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...
- C#对XML、JSON等格式的解析
C#对XML.JSON等格式的解析 一.C#对XML格式数据的解析 1.用XMLDocument来解析 XmlDocument xmlDocument = new XmlDocument(); xml ...
- Newtonsoft.Json.dll 反序列化JSON字符串
上一篇JSON博客<JSON入门级学习小结--JSON数据结构>中已对JSON做了简单介绍,JSON字符串数组数据样式大概是这样子的: 如今因为项目需求(asp.net web网站,前台向 ...
随机推荐
- Linux TCP队列相关参数的总结 转
在Linux上做网络应用的性能优化时,一般都会对TCP相关的内核参数进行调节,特别是和缓冲.队列有关的参数.网上搜到的文章会告诉你需要修改哪些参数,但我们经常是知其然而不知其所以然,每次照抄过 ...
- VS2012无法安装cocos2d-x-2.1.4 解决方法及VS2012新建coco2d-x项目(一)
转自:http://www.cnblogs.com/wangpei/admin/EditPosts.aspx?opt=1 (注:此方法是可行,仅供参考,建议大家直接看我的 一见命令解决vs安装并创建c ...
- 源码-hadoop1.1.0-core-org.apache.hadoop
按包的顺序类的顺序来吧,因为我不懂hadoop类的具体体系和类之间的联系,如果有一定知识积累的可以看下别人写的hadoop源码解读类的书,类似的有 http://pan.baidu.com/s/1i3 ...
- Java基础知识强化之IO流笔记75:NIO之 Scatter / Gather
1. Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作. 分 ...
- 源自梦想 eclipse快捷键整理
Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Alt+↑ 复制当前行到上一行(复制增加) ...
- 九 AIDL
多进程 多线程 优点 安全 稳定 扩大内存空间 节约CPU时间 AIDL=Android Interface definition language 使用情况:做一个下载,不想让你的下载拖垮你 ...
- Vmware出现报错The VMware Authorization Service is not running.之后无法上网解决
今天一大早开VMware,启动ubuntu时出现了报错The VMware Authorization Service is not running,服务Authorization没有运行. 这之前一 ...
- poi实现将数据输出到Excel表格当中
今天简单的学习了一下POI,一下是所使用到的jar,这些jar可以到apache去下载
- 各种"居中"
先看效果 代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> < ...
- mysql简单介绍
SQL语言分为三个部分:数据定义语言( Data DefinitionLanguage,简称为DDL).数据操作语言( DataManipulation Language,简称为DML)和数据控制语言 ...