【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网站,前台向 ...
随机推荐
- Lucene的Vint类型详解
Lucene Vint压缩策略是,用每个字节的最高位做标志位,后7位为有效算术位,如果标志位为1,则说明后一个字节和当前字节是同一个数字,为0说明后一个字节是一个新的数字 Lucene源代码中进行存储 ...
- 基于jQuery实现苹果Dock样式的菜单
爱编程小编之前我们分享过相当数量的jQuery菜单了,今天要给大家带来一款Dock样式的jQuery菜单,用过苹果的朋友都知道,它的Dock菜单非常酷,配合漂亮的图标就更加绚丽了.效果图如下: 在线预 ...
- google使用技巧
- 1.7.3 Relevance-相关性
1. 相关性 相关性是一个查询响应满足用户搜索信息的一个度(程度). 查询响应的相关性主要依赖于上下文的查询.单个搜索应用程序可以通过用户的不同需求和期望被用来在不同的上下文.例如,气候数据的搜索引擎 ...
- 【python,threading】python多线程
使用多线程的方式 1. 函数式:使用threading模块threading.Thread(e.g target name parameters) import time,threading def ...
- 解决eclipse下pydev的unresolved import的问题
有些模块,比如PIL,已经装入过,但是在pydev中无法自动提示,甚至有报 unresolved import的问题,虽然不会引起运行时问题,但是无法实现自动提示,还是一件很麻烦的事情. 下面有个 ...
- 《Cortex-M0权威指南》之体系结构---存储器系统
转载请注明来源:cuixiaolei的技术博客 Cortex-M0处理器为32位处理器,所以具有最大4G的寻址空间.在体系结构上,存储器空间被划分位一系列的区域,每个区域都有推荐的用途,以提高不同设备 ...
- Oracle基础 exp/imp 数据泵导入/导出 命令
一.导出方式: 使用exp/imp方式导出数据分为四种方式: 1.表方式导出:一个或多个指定的表,包括表的定义.表数据.表的所有者授权.表索引.表约束,以及创建在该表上的触发器.也可以只导出结构,不导 ...
- What are definitions of Model, Inference and Algorithm and its associations ?
1.拿初中的二元一次方程来说明: 1.1)说model就好比一元二次方程,它是个方程模型: 1.2)再说inference是求解该方程的某种方法--加减消元法(重在推理): 1.3)最后说algori ...
- POJ 3259 Wormholes (最短路)
Wormholes Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 34302 Accepted: 12520 Descr ...