首先,JSON是什么?
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式…… 详见 http://www.json.org/json-zh.html
JSON的语法
JSON的语法很简单,有五大要素,即object, array, value, string, number. 使用起来很简单很方便。
解析JSON
JSON的解析器很多,比如C#的就有
JSONSharp
LitJSON
JSON for .NET
等等
不过,在使用中发现,JSON的语法似乎并没有被很多解析器严格遵循,比如org.json对待JSON中string解析得并不是很严格,如果一个string中间没有歧义字符,则可以省略双引号的。这可能和javascript的写法有关系吧。
C# 4.0中使用JSON
我用的是这个解析器,它很小巧,用起来很方便:
string input = @"{ ""date"": {
""year"" : 2010,
""month"" : 7,
""day"" : 26
},
""note"" : ""test json""
}";
dynamic json = JSON.JsonHydrate(input);
Console.WriteLine(
"date: {0}-{1}-{2}\n"+
"note: {3}",
json.date.year, json.date.month, json.date.day,
json.note
);
不过这个解析器很严格的,不能省略双引号。
也许自己可以慢慢写个JSON解析器,代码量也不是很多,顺便还可以复习下编译原理……