本文发布于 2021-06-30, 最后更新于 1882 天前,其中的信息可能已经有所发展或是发生改变。

文章摘要

前言 json是一种与xml一样的结构化数据语言,也是一种被广泛用于存储和传输领域的数据格式,它易于人阅读和编写,同时也易于机器解析和生成。那么,在C#语言中,如何操作json格式的文本或对象呢? 安装轮子 所幸,很多前辈们都已经为我们造好了轮子,这里我先介绍其中之一,以后可能会拓展另外一些轮子。 这个轮子就是LitJson,而我的开发环境是VS2015(都1202了,还在用2015?好吧,我就是…

前言

json是一种与xml一样的结构化数据语言,也是一种被广泛用于存储和传输领域的数据格式,它易于人阅读和编写,同时也易于机器解析和生成。那么,在C#语言中,如何操作json格式的文本或对象呢?

安装轮子

所幸,很多前辈们都已经为我们造好了轮子,这里我先介绍其中之一,以后可能会拓展另外一些轮子。

这个轮子就是LitJson,而我的开发环境是VS2015(都1202了,还在用2015?好吧,我就是懒得更新)

下面是它的英文描述

要在C#项目中使用它,其实很简单

如图所示,只需在解决方案管理器中对项目右键,之后打开项目的NuGet包管理器,然后再搜索LitJson,并下载安装完成,随后再在源代码中引入LitJson,这些都完成了之后,就可使用这个库啦!

使用轮子

引入LitJson的方法是在源代码头部输入using LitJson;

在LitJson中,一个JsonData类型就相当于Javascript中的一个Object,

而如果要将字符串转换成JsonData,这个库则为我们提供了一个JsonMapper工具

Unsupported components
This area is reserved for unsupported components.
CoreMediaText

主要用到的是ToJsonToObject和泛型的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只是众多轮子中的其中一个,以后如果用到了其他轮子,可能会更新一些其他轮子的用法

九仞之行

严于律己,宽以待人,深自警省,讷言敏行

订阅
💬 评论 (2)
P
PixrisEdge 101 · Windows 10中国

个人感觉在C#中使用Newtonsoft.Json更好,平时日常工作中用的多的是Newtonsoft.Json(╯‵□′)╯︵┴─┴

S
Styunlen博主Chrome 66 · Android印度

个人感觉在C#中使用Newtonsoft.Json更好,平时日常工作中用的多的是Newtonsoft.Json(╯‵□′)╯︵┴─┴

@Pixris

本来想用滴,但这个litjson看上去比较简单,就用了这个

编辑器加载中…