前言
json是一种与xml一样的结构化数据语言,也是一种被广泛用于存储和传输领域的数据格式,它易于人阅读和编写,同时也易于机器解析和生成。那么,在C#语言中,如何操作json格式的文本或对象呢?
安装轮子
所幸,很多前辈们都已经为我们造好了轮子,这里我先介绍其中之一,以后可能会拓展另外一些轮子。
这个轮子就是LitJson,而我的开发环境是VS2015(都1202了,还在用2015?好吧,我就是懒得更新)
下面是它的英文描述
A.Net library to handle conversions from and to JSON(JavaScript Object Notation) strings. Written in C# , and it'sintended to be small, fast and easy to use.
lt's quick and lean, without external dependencies.
要在C#项目中使用它,其实很简单
如图所示,只需在解决方案管理器中对项目右键,之后打开项目的NuGet包管理器,然后再搜索LitJson,并下载安装完成,随后再在源代码中引入LitJson,这些都完成了之后,就可使用这个库啦!
使用轮子
引入LitJson的方法是在源代码头部输入using LitJson;
在LitJson中,一个JsonData类型就相当于Javascript中的一个Object,
而如果要将字符串转换成JsonData,这个库则为我们提供了一个JsonMapper工具
它有如下静态方法:
主要用到的是ToJson
、ToObject
和泛型的ToObject<>
ToJson
顾名思义就是将一个Object(在这里是一个JsonData或一个具体的C#类),转换成Json文本,其中转换对象如果是个C#类,那么只会把他的公有对象转换成Json(因为私有不可访问)ToObject
这个是将一个Json文本转换成JsonData对象ToObject<>
这个是上一个方法的泛型重载,他支持将Json文本转换成一个具体的,已经定义了的C#类
接下来使访问Json对象中的属性,这就相当简单了
首先创建一个JsonData
对象,并为他赋值
接下来直接像是用Python中的字典一样,就可访问JsonData中的字段值啦,比如如果有一个名为city的字段,那么就可直接访问jsData["city"]
,JsonData重载了[]运算符,使得字段的访问变得轻而易举。
问题来了,如果我想要字段值的字符串怎么办呢?
直接在后面接上.ToString()
就好啦,他同样重载了这个方法
结语
上面只是简单地介绍了LitJson的一些基本用法,而且LitJson只是众多轮子中的其中一个,以后如果用到了其他轮子,可能会更新一些其他轮子的用法
个人感觉在C#中使用Newtonsoft.Json更好,平时日常工作中用的多的是Newtonsoft.Json(╯‵□′)╯︵┴─┴
本来想用滴,但这个litjson看上去比较简单,就用了这个