压缩JSON

我们知道JObject等的ToString方法,输出的JSON字符串是经过格式化的,存在空格缩进和换行,以方便阅读。

例如:


Dim
json As String = "{'touser':['zhansan', 'lisi'],'msgtype':'text'}"
Dim
jo As JObject = JsonConvert.DeserializeObject(json)
Output
.Show(jo.ToSTring)

输出结果为:

{
  "touser": [
    "zhansan",
    "lisi"
  ],
  "msgtype": "text"
}

如果要压缩掉多余的空格和换行,得到紧凑格式的JSON字符串,可以用JsonConvert的SerializeObject。

例如:

Dim json As String = "{'touser':['zhansan', 'lisi'],'msgtype':'text'}"
Dim
jo As JObject = JsonConvert.DeserializeObject(json)
Dim
ret1 As String = JsonConvert.SerializeObject(jo) '紧凑格式
Dim
ret2 As String = JsonConvert.SerializeObject(jo, Formatting.Indented) '缩进格式,等效于jo.ToString()
Output.Show(ret1)
Output.Show(ret2)


输出结果为如下,两种格式都有,你可以比较一下:

{"touser":["zhansan","lisi"],"msgtype":"text"}

{
  "touser": [
    "zhansan",
    "lisi"
  ],
  "msgtype": "text"
}

如果你需要在数据库中存储JSON字符串或者需要通过网络传送,采用紧凑格式比较好


本页地址:http://www.foxtable.com/webhelp/topics/6386.htm