CsharpJson基于 C# 的 JSON 解析库
现有的轮子觉得不好用,又造一个,欢迎来测试提bug!
经常拿 JSON 当协议用,结果发现好多解析库,每次解析都要先定义类,想找个通用的都不是很满意。拿 JSON 当协议,会定义几种格式,这样的话要解析就得每种都定义个类,然后又没法判断哪种格式对应那个类,总之感觉难用,所以就动手写了一个。
生成 JSON:
using CsharpJson; namespace test { class MainClass { public static void Main(string[] args) { JsonObject child = new JsonObject(); child["china"] = "hello"; child["shanghai"] = 123; child.Add("one", "abc"); child.Add("two", 12); child.Add("three", 44.9); JsonArray arr = new JsonArray(); arr[0] = true; arr[1] = 100; arr[2] = "你好"; arr.Add("12"); arr.Add(456); arr.Add(false); arr.Add(child); JsonObject obj = new JsonObject(); obj.Add("中国", "china"); obj.Add("北京", true); obj.Add("上海", 123); obj.Add("NULL",null); obj.Add("childobj", child); obj.Add("arrayvalue", arr); JsonDocument doc=new JsonDocument(); doc.Object=obj; string val = doc.ToJson(); Console.WriteLine("生成的Json字符串:"); Console.WriteLine(val); } } }
解析 JSON:
string data = "{\"中国\": \"china\",\"北京\": true,\"上海\": 123}"; doc = JsonDocument.FromString(data); if(doc.IsObject()) { JsonObject jsobj = doc.Object; foreach(string key in jsobj.Keys) { switch(jsobj[key].Valuetype) { case JsonType.BOOL: Console.WriteLine("key={0},value={1}",key,jsobj[key].ToBool()); break; case JsonType.NUMBER: Console.WriteLine("key={0},value={1}",key,jsobj[key].ToInt()); break; case JsonType.STRING: Console.WriteLine("key={0},value={1}",key,jsobj[key].ToString()); break; } } }
评论
lkjsonDelphi的JSON解析库
lkjson(JSONdelphilibrary)是Delphi实现的JSON数据格式和对象结构,主要特点是轻量级以及快速。
lkjsonDelphi的JSON解析库
0
QjsonQt的JSON解析库
QJson是一个基于Qt的开发包用来将JSON数据解析成QVariant对象,JSON的数组将被映射为QVariantList实例,而其他对象映射为QVariantMap实例。
QjsonQt的JSON解析库
0
BWObjectMapping自动化的 JSON 解析库
BWObjectMapping 是一个自动化的 JSON 解析并映射到对象的 Objective-C
BWObjectMapping自动化的 JSON 解析库
0
BWObjectMapping自动化的 JSON 解析库
BWObjectMapping是一个自动化的JSON解析并映射到对象的Objective-C库,支持NSManagedObject.
BWObjectMapping自动化的 JSON 解析库
0
s60-json-librarySymbian上的JSON解析库
s60-json-library是Symbian平台上用来解析JSON数据的C++类库。代码请从SVN库中下载:svncheckouthttp://s60-json-library.googlecod
s60-json-librarySymbian上的JSON解析库
0