json的解析方式

JSON(读Jason)是为了能够使得数据格式成为一种标准,更简单的被JavaScript解析。

优点

1、轻量级的数据交换格式

2、人们读写更加容易

3、易于机器的解析和生成

4、能够通过JavaScript中eval()函数解析JSON

5、JSON支持多语言。包括:ActionScript, C, C#, ColdFusion, E, Java, JavaScript, ML, Objective CAML, Perl, PHP, Python, Rebol, Ruby, and Lua.

语法

JSON语法是一种用于传输和生成数据的协定,很类似于C家族的语言,所以很容易被C家族的语言所解析。

对象:对象包含在{}之间

属性:采用Key-Value对来表示。属性之间使用逗号分开。  string : value

数组:数组存放在[]之间   [ elements ]

元素:元素之间用逗号分开

值:值可以是字符串,数字,对象,数组,true,false,null

例子:JSON

复制代码


 name: " Michael "
 email: " 17bity@gmail.com "
 homepage: " http://www.google.com " 
}, 

 name: " John "
 email: " john@gmail.com "
 homepage: " http://www.google.com " 
}, 

 name: " Peggy "
 email: " peggy@gmail.com "
 homepage: " http://www.google.com " 

复制代码

简单 JSON 示例

 按照最简单的形式,可以用下面这样的 JSON 表示名称/值对:

{ ”firstName”: ”Brett” }

这个示例非常基本,而且实际上比等效的纯文本名称/值对占用更多的空间:

firstName=Brett

但是,当将多个名称/值对串在一起时,JSON 就会体现出它的价值了.首先,可以创建包含多个名称/值对的记录,比如:

{ ”firstName”: ”Brett”, ”lastName”:”McLaughlin”, ”email”: ”brett@newInstance.com” }

如果使用 JSON,就只需将多个带花括号的记录分组在一起:

复制代码
{ ”programmers”: [ 
  {  " firstName "" Brett "" lastName ": " McLaughlin "" email "" brett@newInstance.com " }, 
  {  " firstName "" Jason "" lastName ": " Hunter "" email "" jason@servlets.com " }, 
  {  " firstName "" Elliotte "" lastName ": " Harold "" email "" elharo@macfaq.com " } 
 ], 
“authors”: [ 
  {  " firstName "" Isaac "" lastName "" Asimov "" genre "" science fiction " }, 
  {  " firstName "" Tad "" lastName "" Williams "" genre "" fantasy " }, 
  {  " firstName "" Frank "" lastName "" Peretti "" genre "" christian fiction " } 
 ], 
“musicians”: [ 
  {  " firstName "" Eric "" lastName "" Clapton "" instrument "" guitar " }, 
  {  " firstName "" Sergei "" lastName "" Rachmaninoff "" instrument "" piano " } 
 ] 
复制代码


四种解析Json的方式:

//第一部分 
var list1 = [1,3,4]; 
alert(list1[1]); 
var list2 = [{"name":"leamiko","xing":"lin"}]; 
alert(list2[0]["xing"]) 
alert(list2[0].xing) 

//第二部分 
var value = { 
    ”china”:{ 
        ”hangzhou”:{“item”:”1″}, 
        ”shanghai”:{“item”:”2″}, 
        ”chengdu”:{“item”:”3″} 
    }, 
    ”America”:{ 
        ”aa”:{“item”:”1″}, 
        ”bb”:{“item”:”2″} 
    }, 
    ”Spain”:{ 
        ”dd”:{“item”:”1″}, 
        ”ee”:{“item”:”2″}, 
        ”ff”:{“item”:”3″} 
    } 
}; 

for(var countryObj in value) 
{ 
    document.write(countryObj + ”:<br />”) 
    //没用的for(var cityObj in value.countryObj) 
    for(var cityObj in value[countryObj]) 
    { 
        document.write(‘    ’ + cityObj + ”<br />”); 
        for(var itemObj in value[countryObj][cityObj]) 
        { 
            document.write(“      ”+ itemObj + value[countryObj][cityObj][itemObj] +”<br />”) 
        } 
    } 
}

//第三部分 
			var value2 = { 
			    "china":[ 
			        {"name":"hangzhou", "item":"1"}, 
			        {"name":"shanghai", "item":"2"}, 
			        {"name":"sichuan", "item":"3"} 
			    ], 
			    "America":[ 
			        {"name":"aa", "item":"12"}, 
			        {"name":"bb", "item":"2"} 
			    ], 
			    "Spain":[ 
			        {"name":"cc", "item":"1"}, 
			        {"name":"dd", "item":"23"}, 
			        {"name":"ee", "item":"3"} 
			    ] 
			}; 
			
			for (var countryObj in value2) 
			{ 
			    document.write(countryObj + ":<br />") 
			    for (var cityObj in value2[countryObj]) 
			    { 
			        //可以用document.write("-----" + value2[countryObj][cityObj].item + "<br />"); 
			        document.write(cityObj + " ++++++ " + value2[countryObj][cityObj]["name"] + "<br />" ); 
			    } 
			}


//第四部分 
var value2 = { 
    ”china”:[ 
        {"name":"hangzhou", "item":"1"}, 
        {"name":"shanghai", "item":"2"}, 
        {"name":"sichuan", "item":"3"} 
    ], 
    ”America”:[ 
        {"name":"aa", "item":"12"}, 
        {"name":"bb", "item":"2"} 
    ], 
    ”Spain”:[ 
        {"name":"cc", "item":"1"}, 
        {"name":"dd", "item":"23"}, 
        {"name":"ee", "item":"3"} 
    ] 
}; 

    for (var countryObj in value2) 
    { 
        document.write(countryObj + ”:<br />”) 
        //document.write(“  ” + value2[countryObj].length); 
        for (var i = 0;i < value2[countryObj].length; i++) 
        { 
            document.write(“  ” + value2[countryObj][i]["name"] + ”<br />”); 
        } 
    }


var  jsonObj = eval(“(“ + jsonStr + ”)”); 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沙漏无语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值