如何正确的使用json?如何在.Net中使用json?

什么是json

json是一种轻量级的数据交换格式,由N组键值对组成的字符串,完全独立于语言的文本格式。

为什么要使用json

在很久很久以前,调用第三方API时,我们通常是采用xml进行数据交互,但往往xml包含更多冗余的标记字符,在传输较大数据时,相较于xml,json显得更加简洁,轻量。

与此同时,javascript能更好的支持json,以及它更加便捷的解析方式,这使得我们在编程过程中能够更加方便,快捷的进行开发。

慢慢地,我们已经渐渐向json转变,越来越多的人开始使用json进行数据交互了。

当然,在选择json和xml的过程,实际上是以API的交互方式为准的。

如何创建json

json由N组键值对(名称/值对)组成。

一般格式:

{key:value,key:value,...}

其中key是名称,value就是值对。

举个例子:

{
"name": "simoje",
"sex": "男",
"age": "10",
"is_marry": false,
"childrens": null,
"friends": [
"tom",
"anly",
"kobe"
],
"friends_age": [
{
"tom": 11
},
{
"anly": 10
},
{
"kobe": "10"
}
]
}

json支持类型:

  • 数值
  • 逻辑值
  • 数组
  • 对象
  • null

如何访问以及修改json

以上为例:

 var json =
{
"name": "simoje",
"sex": "男",
"age": "10",
"is_marry": false,
"childrens": null,
"friends": [
"tom",
"anly",
"kobe"
],
"some": [
{
"tom": 11
},
{
"anly": 10
},
{
"kobe": "10"
}
]
}

获取姓名(name)

var name = json["name"];

获取所有的朋友(friends)

var friends = json["friends"];
var f = "";
foreach(var item in firends){
f += item + ",";
} f = f.subString(0, f.length - 1);

这样就得到了所有的朋友:tom,anly,kobe

获取tom的年龄(friends_age)

var tom_age = json["friends_age"][0]["tom"];

以上便是json的构造与使用方式了。

如何在.Net中使用json

  1. 下载Newtonsoft.Json.dll/Newtonsoft.Json.Net20.dll(下方链接)
  2. 将其添加到项目中,并引用命名空间

声明&赋值

 JObject json = new JObject(
new JProperty("name", "simoje"),
new JProperty("sex", "男"),
new JProperty("age", ),
new JProperty("is_marry", false),
new JProperty("childrens",null),
new JProperty("friends",
new JArray(
new JValue("tom"),
new JValue("anly"),
new JValue("kobe"))),
new JProperty("friends_age",
new JArray(
new JProperty("tom", ),
new JProperty("anly", ),
new JProperty("kobe", ))));

访问&修改

获取姓名(name)

var name = json["name"].ToString();

获取所有的朋友(friends)

JArray friends_ja = JArray.Parse(json["friends"].ToString());
var f = string.Empty;
foreach (JValue item in friends_ja)
{
f += item.ToString() + ",";
} f = f.Substring(, f.Length - );

获取tom的年龄(friends_age)

var friends_age_ja = JArray.Parse(json1["friends_age"].ToString());
var tom_age = friends_age_ja[]["tom"].ToString();

在实际开发过程中,我们很可能会遇到很多问题,但只要我们能灵活运用json,它会给我们带来很多意想不到的快乐和惊喜。

以上。

链接:http://pan.baidu.com/s/1ntMldJ7 提取密码:892s

如遇到如何问题,请在下方留言;如有任何建议与见解,欢迎指正。

上一篇:Java NIO4:Socket通道


下一篇:Response.ContentType 详细列表 <转>