如何正确的使用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

以上为例:

 1 var json = 
 2 {
 3     "name": "simoje",
 4     "sex": "男",
 5     "age": "10",
 6     "is_marry": false,
 7     "childrens": null,
 8     "friends": [
 9         "tom",
10         "anly",
11         "kobe"
12     ],
13     "some": [
14         {
15             "tom": 11
16         },
17         {
18             "anly": 10
19         },
20         {
21             "kobe": "10"
22         }
23     ]
24 }
View Code

 

获取姓名(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. 将其添加到项目中,并引用命名空间

声明&赋值

 1 JObject json = new JObject(
 2     new JProperty("name", "simoje"),
 3     new JProperty("sex", ""),
 4     new JProperty("age", 10),
 5     new JProperty("is_marry", false),
 6     new JProperty("childrens",null),
 7     new JProperty("friends",
 8         new JArray(
 9             new JValue("tom"),
10             new JValue("anly"),
11             new JValue("kobe"))),
12     new JProperty("friends_age",
13         new JArray(
14             new JProperty("tom", 11),
15             new JProperty("anly", 10),
16             new JProperty("kobe", 10))));

 

访问&修改

获取姓名(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(0, f.Length - 1);

 

获取tom的年龄(friends_age)

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

 

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

以上。

 

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

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

posted @ 2015-08-28 12:56  simoje  阅读(558)  评论(0编辑  收藏  举报