cnblogs Post date: 2010-07-26 13:27

首先,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解析器,代码量也不是很多,顺便还可以复习下编译原理……

测试程序在这里(含代码)