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 }
复制代码

注:PrettyPrint为false时会压缩json,优化传输

1 JsonWriter jw = new JsonWriter();
2  jw.PrettyPrint = false; 
3 JsonMapper.ToJson(data, jw); Debug.Log(jw.TextWriter.ToString());

 

---

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

当然也可以借助一些数据保存的插件将我们从繁琐的编码解脱出来,下面是一款不错的游戏数据保存加载插件

 

Unity最受欢迎的插件,可以让您的游戏如虎添翼,为您节省大量时间可以投入在游戏的创意和细节上

posted @   世纪末の魔术师  阅读(22139)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
  1. 1 ありがとう··· KOKIA
ありがとう··· - KOKIA
00:00 / 00:00
An audio error has occurred.

作词 : KOKIA

作曲 : KOKIA

编曲 : 日向敏文

作词 : KOKIA

作曲 : KOKIA

誰もが気付かぬうちに

誰もが気付かぬうちに

何かを失っている

フッと気付けばあなたはいない

思い出だけを残して

せわしい時の中

言葉を失った人形達のように

街角に溢れたノラネコのように

声にならない叫びが聞こえてくる

もしも もう一度あなたに会えるなら

もしも もう一度あなたに会えるなら

たった一言伝えたい

ありがとう

ありがとう

時には傷つけあっても

時には傷つけあっても

あなたを感じていたい

思い出はせめてもの慰め

いつまでもあなたはここにいる

もしも もう一度あなたに会えるなら

もしも もう一度あなたに会えるなら

たった一言伝えたい

ありがとう

ありがとう

もしも もう一度あなたに会えるなら

もしも もう一度あなたに会えるなら

たった一言伝えたい

もしも もう一度あなたに会えるなら

たった一言伝えたい

ありがとう

ありがとう

時には傷つけあっても

時には傷つけあっても

あなたを感じてたい

点击右上角即可分享
微信分享提示