C#使用LitJson对Json数据解析
2016-05-26 20:54
405 查看
官网:(json.org/json-zh.html <可选中文>)
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。
1.首先建立一个txt文本文件作为json的媒介:
json中使用[]表示数组结构,使用{}表示对象结构,使用 “键”:“值” 这中键值对的方式表示属性及值,各种结构间彼此使用 , 分隔。
[
{"name":"Json","age":20,"skill":"noting"},
{"name":"Haria","age":24,"skill":"jump"},
{"name":"Jsfg","age":42,"skill":"attack"}
]
该结构定义了一个数组,里面包含了三个对象,每个对象下有name,age,skill三个属性和各自的值。
2.这里再定义一个类用来対映json数据中包含的对象:
通过重写了该类的ToString方法用来输出类的信息。
3.最后引入LitJson程序集,可以在Json官网下方找到下载,也可以使用vs NuGet来加载到程序中。
这来有详细的官方引导:lbv.github.io/litjson/docs/quickstart.html
通过JsonMapper.ToObject和JsonMapper.ToJson来实现json和对象之间的转换,通过JsonData来接收解析的数据,再使用遍历来取出JsonData中的数据。
如果这些类容帮助到你了,希望您给予支持 o(^▽^)o
(支付宝)
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。
1.首先建立一个txt文本文件作为json的媒介:
json中使用[]表示数组结构,使用{}表示对象结构,使用 “键”:“值” 这中键值对的方式表示属性及值,各种结构间彼此使用 , 分隔。
[
{"name":"Json","age":20,"skill":"noting"},
{"name":"Haria","age":24,"skill":"jump"},
{"name":"Jsfg","age":42,"skill":"attack"}
]
该结构定义了一个数组,里面包含了三个对象,每个对象下有name,age,skill三个属性和各自的值。
2.这里再定义一个类用来対映json数据中包含的对象:
通过重写了该类的ToString方法用来输出类的信息。
class JsonObject { public string name { get; set; } public string skill { get; set; } public int age { get; set; } public override string ToString() { return string.Format("JsonObject:name:{0},age={1},skill={2}", name, age, skill); } }
3.最后引入LitJson程序集,可以在Json官网下方找到下载,也可以使用vs NuGet来加载到程序中。
这来有详细的官方引导:lbv.github.io/litjson/docs/quickstart.html
通过JsonMapper.ToObject和JsonMapper.ToJson来实现json和对象之间的转换,通过JsonData来接收解析的数据,再使用遍历来取出JsonData中的数据。
class Program { static void Main(string[] args) { List<JsonObject> jsonList = new List<JsonObject>();//JsonObject即为上述2中创建的类 JsonData jsonData = JsonMapper.ToObject(File.ReadAllText("JsonFile.txt"));//这里的JsonFile.txt文件即为上面1中的文本文件 //通过索引的方式获取json中的信息,既可以使用索引位置,也可以使用索引键名 foreach (JsonData item in jsonData) { JsonObject JO = new JsonObject(); int age = int.Parse(item["age"].ToString()); JO.name = item[0].ToString(); JO.skill = item["skill"].ToString(); JO.age = age; jsonList.Add(JO); } Console.WriteLine("\n通过索引来解析json:"); foreach (JsonObject jo in jsonList) { Console.WriteLine(jo.ToString()); } //因为这里的json数据为一组对象,所以使用数组和泛型进行存储解析(json数据必须和类属性结构对应) JsonObject[] jsonObjectArray= JsonMapper.ToObject<JsonObject[]>(File.ReadAllText("JsonFile.txt")); List<JsonObject> jsonList2 =JsonMapper.ToObject<List<JsonObject>>(File.ReadAllText("JsonFile.txt")); Console.WriteLine("\n使用array数组:"); foreach (var item in jsonObjectArray) { Console.WriteLine(item); } Console.WriteLine("\n使用list集合:"); foreach (var item in jsonList2) { Console.WriteLine(item); } //将对象转换为json,再将json转换为对象 JsonObject jsonObject = new JsonObject() { name = "哈撒kei", age = 22, skill = "万佛朝宗" }; string json=JsonMapper.ToJson(jsonObject); JsonObject jonsonObject = JsonMapper.ToObject<JsonObject>(json); Console.WriteLine("\n将对象转换为json(中文转换为ASCII码):" + json);//这里json会将中文转换为ASCII码 Console.WriteLine("\n将json转换为对象:" + jonsonObject); Console.ReadKey(); } }
如果这些类容帮助到你了,希望您给予支持 o(^▽^)o
(支付宝)
相关文章推荐
- 【转】js 关键字 in 的使用方法
- 用JS生成MIDI文件(附代码)
- 原生 JavaScript 图片裁剪效果
- 解决jsCookie 页面跳转失效问题
- [JSOI2016]反质数序列
- 2016年5月26日晚上(妙味课堂js基础-2笔记四(BOM))
- 2016年5月26日晚上(妙味课堂js基础-2笔记三(DOM))
- 实习入职第六天---快速查看JSON格式化工具
- 便签4-js数组
- Extjs框架html5中input、textarea的placeholder,元素内容为空时,颜色为灰色
- JSON.parse解析json数据及取值的几种方式
- 玩转js--炫酷抽奖轮盘
- js 去掉字符串前后空格
- IntelliJ IDEA中js代码报如下警告的解决方法
- high performence javascript(高性能JavaScript)
- 在JSP中添加图片
- [RxJS] Combination operator: withLatestFrom
- JSP和Servlet之间跳转总结
- js模版引擎介绍
- 网页进度条实现