C#使用LitJson对Json数据解析

官网:(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方法用来输出类的信息。

 1 class JsonObject
 2     {
 3         public string name { get; set; }
 4         public string skill { get; set; }
 5         public int age { get; set; }
 6         public override string ToString()
 7         {
 8             return string.Format("JsonObject:name:{0},age={1},skill={2}", name, age, skill);
 9         }
10     }


3.最后引入LitJson程序集,可以在Json官网下方找到下载,也可以使用vs NuGet来加载到程序中。

这来有详细的官方引导:lbv.github.io/litjson/docs/quickstart.html

通过JsonMapper.ToObject和JsonMapper.ToJson来实现json和对象之间的转换,通过JsonData来接收解析的数据,再使用遍历来取出JsonData中的数据。

 1 class Program
 2     {
 3
 4         static void Main(string[] args)
 5         {
 6             List<JsonObject> jsonList = new List<JsonObject>();//JsonObject即为上述2中创建的类
 7             JsonData jsonData = JsonMapper.ToObject(File.ReadAllText("JsonFile.txt"));//这里的JsonFile.txt文件即为上面1中的文本文件
 8
 9             //通过索引的方式获取json中的信息,既可以使用索引位置,也可以使用索引键名
10             foreach (JsonData item in jsonData)
11             {
12                 JsonObject JO = new JsonObject();
13                 int age = int.Parse(item["age"].ToString());
14                 JO.name = item[0].ToString();
15                 JO.skill = item["skill"].ToString();
16                 JO.age = age;
17
18                 jsonList.Add(JO);
19             }
20
21             Console.WriteLine("\n通过索引来解析json:");
22             foreach (JsonObject  jo in jsonList)
23             {
24                 Console.WriteLine(jo.ToString());
25             }
26
27
28             //因为这里的json数据为一组对象,所以使用数组和泛型进行存储解析(json数据必须和类属性结构对应)
29             JsonObject[] jsonObjectArray= JsonMapper.ToObject<JsonObject[]>(File.ReadAllText("JsonFile.txt"));
30
31             List<JsonObject> jsonList2 =JsonMapper.ToObject<List<JsonObject>>(File.ReadAllText("JsonFile.txt"));
32
33             Console.WriteLine("\n使用array数组:");
34
35             foreach (var item in jsonObjectArray)
36             {
37                 Console.WriteLine(item);
38             }
39
40             Console.WriteLine("\n使用list集合:");
41
42             foreach (var item in jsonList2)
43             {
44                 Console.WriteLine(item);
45             }
46
47
48             //将对象转换为json,再将json转换为对象
49             JsonObject jsonObject = new JsonObject() { name = "哈撒kei", age = 22, skill = "万佛朝宗" };
50
51             string json=JsonMapper.ToJson(jsonObject);
52
53             JsonObject  jonsonObject = JsonMapper.ToObject<JsonObject>(json);
54
55             Console.WriteLine("\n将对象转换为json(中文转换为ASCII码):" + json);//这里json会将中文转换为ASCII码
56             Console.WriteLine("\n将json转换为对象:" + jonsonObject);
57
58             Console.ReadKey();
59         }
60     }


如果这些类容帮助到你了,希望您给予支持 o(^▽^)o

(支付宝)

时间: 2024-11-10 07:57:27

C#使用LitJson对Json数据解析的相关文章

Unity:通过LitJson对JSON数据创建与使用

本文章首发于Unity:通过litjson对json数据创建与使用 科普时间: LitJSON是一个使用C#编写的.NET库,我们可以通过它来处理JSON数据. JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据.简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生

json数据解析,并实现将网络json数据获取用listview显示

需要使用jar包 fastjson或gson这两个jar包. //Gson的使用方式 Gson gson=new Gson(); String str=ReadAssetsFile.readtext(this,"json_ss");//this当前类,"json_ss"需要解析的文件名 UserMessage userMessage=gson.fromJson(str,UserMessage.class);//需要解析的json文件最外层类名 //fastjson的

Android JSON数据解析(GSON方式)

要创建和解析JSON数据,也可以使用GSON来完成.GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.使用GSON,可以很容易的将一串JSON数据转换为一个Java对象,或是将一个Java对象转换为相应的JSON数据. 1.GSON的两个重要方法 在GSON的API中,提供了两个重要的方法:toJson()和fromJson()方法.其中,toJson()方法用来实现将Java对象转换为相应的JSON数据,fromJson()方法则用来实现将JSON数据转换

iOS之网络数据下载和Json数据解析

iOS之网络数据下载和Json数据解析 简介 在本文中笔者将要给大家介绍iOS中如何利用NSURLConnection从网络上下载数据,如何解析下载下来的JSON数据,以及如何显示数据和图片的异步下载显示 涉及到的知识点: 1.NSURLConnection异步下载封装 2.JSON格式和JSON格式解析 3.数据显示和使用SDWebImage异步显示图片 内容 1.网络下载基础知识介绍 (1)什么是网络应用? 一般情况下, iPhone的计算机, 照相机不需要从网络上下载数据也能运行, 所以这

ios json数据解析

刚刚下午那会 弄了个 解析 xml  demo的小例子,本想着json也挺复杂 弄还是 不弄,但是简单的看了下 发现挺简单,这个时候就犹豫了,要不写到博客上来 ? 考虑了很久,还是写上来吧,毕竟json用得太多了,而且算是自己的积累吧,毕竟刚开始学习IOS开发方面的知识,就当是巩固了撒! 还是 先看个效果图吧,如下! 接下来 看下工程目录吧,其实并没有必要,直接建立一个工程就行 ,算了,还是贴上来吧,如下: 工程目录中有个 Notes.json 文件,该文件就是 要解析的json数据了 ,也截下

【Qt编程】基于Qt的词典开发系列&amp;lt;九&amp;gt;--JSON数据解析

在上一篇文章<用户登录及API调用的实现>中,我通过程序实现了用户登录及API调用的实现.从而能够实现网络查词.添词的操作.可是.从上文中能够看到.调用API后返回的是JSON格式的数据,例如以下图所看到的(在QtCreator中的显示): 为了更好的观察JSON格式.我整理后显演示样例如以下: 显然.为了显示查词的结果,我们必须在上图中提取实用的信息,并正确的显示出来. 上图中每一行内容的意思我已经在文章<调用网络API>中作了解释.我在词典中选择想要显示的内容有:单词本身.单词

[转]JSon数据解析的四种方式

转至http://blog.csdn.net/enuola/article/details/7903632 作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的json代码格式比较混乱,可以使用此"http://www.bejson.com/"网站来进行JSON格式化校验(点击打开链接).此网站不仅可以检测Json代码中的错误,而且可以以视图形式显示json中的数据内容,很是方便. 从IOS5开始,APPLE提供了对json的原生支持(NSJSONS

最简单简洁高效的Json数据解析

一.无图无真相 二.主要代码 1.导入jar包 拷贝fastjson.jar包到projectlibs包下 2.封装工具类JsonUtil.java package com.example.parsejsondemo; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import java.util.List; /**

JSON数据解析(GSON方式) (转)

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 在上一篇博文<Android学习笔记44:JSON数据解析>中,我们使用基本的JSON API完成了在服务器端创建JSON数据,以及在Android客户端对JSON数据进行解析. 其实,要创建和解析JSON数据,也可以使用GSON来完成.GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.使