Visual Studio 2015Win64C# 6.0.NET4.5Visual Studio 2013Win32C# 5.0C# 2.0初学者C# 3.5C# 3.0WPFC# 4.0中级Visual Studio.NETC#
jParser PCL .NET Json 解析器





5.00/5 (3投票s)
快速简便地解析 Json 数据
引言
JSON (JavaScript 对象表示法) 是一种轻量级的数据交换格式。它易于人类阅读和编写,也易于机器解析和生成。更多信息,请访问:www.json.org。
为什么选择 JSON?
- 易于阅读
- 与 XML 相比,文件尺寸小
- 大多数网站的 API 使用 Json 来获取和发布数据
背景
我编写这个库是为了实现以下功能
- 类似于 Newtonsoft.Json 的风格来获取值,例如
data["some_str"][ANY_INT]
- 文件尺寸小,约为 11kb
- 支持 Json 数据类型:
String
、Int
、Double
、Bool
、Null
、Array
、Object
- 支持循环
- 代码量小,易于理解
- 可移植类库。PCL
- 仅使用循环和
If
语句来解析数据,以便于移植到其他语言 - 支持所有类型的 Json,即使是 Newtonsoft 中需要使用 JArrays 解析的 Json 数组,在这个库中,它在一个方法中解析所有类型
Using the Code
假设我们有以下简单的 Json 数据
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
要解析这段文本
var result = jParser.parser.Parse(JSON_DATA_STRING);
要从 result
中获取值,假设我们想要获取:“CreateNewDoc()” 值
string data = result["menu"]["popup"]["menuitem"][0]["onclick"];
要获取特定对象的类型,假设我们想要获取 menuitem 的值类型
Type tp = result["menu"]["popup"]["menuitem"].GetType();
tp
将是 List<object>
循环遍历 result 中的项目
foreach(var itm in result)
{
// some code here
}
比较
历史
- 版本 1.0.2.0 -- 从头重写,使用循环解析,添加对
IEnumerable
的支持,修复错误 - 版本 0.1.2.0 -- 首次发布,使用递归解析