什么是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
- 下载Newtonsoft.Json.dll/Newtonsoft.Json.Net20.dll(下方链接)
- 将其添加到项目中,并引用命名空间
声明&赋值
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
如遇到如何问题,请在下方留言;如有任何建议与见解,欢迎指正。