WD1X.COM - 问答一下,轻松解决,电脑应用解决专家
主板显卡CPU内存显示器
硬盘维修显卡维修显示器维修
注册表系统命令DOS命令Win8
存储光存储鼠标键盘
内存维修打印机维修
WinXPWin7Win11Linux
硬件综合机箱电源散热器手机数码
主板维修CPU维修键盘鼠标维修
Word教程Excel教程PowerPointWPS
网络工具系统工具图像工具
数据库javascript服务器
PHP教程CSS教程XML教程

json数据类型之数组和对象深入分析

更新时间:2014-05-26 12:01 作者:佚名点击:
json格式的数据是以{}来定界了同样json数据类型有对象和数组了,下面本文章就举一些例子告诉大家json对象和数组用法与转换方法。
 

在JSON中,有两种结构:对象和数组。

 1. 一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不需要


son是一种异常简单易懂的数据格式,关于json的规定,仅仅如下而已:

1) 并列的数据之间用逗号(", ")分隔。
2) 映射用冒号(": ")表示。
3) 并列数据的集合(数组)用方括号("[]")表示。
4) 映射的集合(对象)用大括号("{}")表示。

例如:

 代码如下  

 {"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"}

2. 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
例如:

 代码如下  

 var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];

JSON有两种结构数组和对象:数组表示有序数据的集合,而对象表示无序数据的集合。
看下面例子:

 代码如下  

$arr = array(111,'aaa','bbb');
 
$arr1 = array(
    'a' => 'aaa',
    'b' => 222
);
 
$arr2 = array(
    'a' => 'aaa',
    'other' => array(
        'bbb',1111
    )
);
echo json_encode($arr); //[111,"aaa","bbb"]
 
echo json_encode($arr1); //{"a":"aaa","b":222}
 
echo json_encode($arr2); //{"a":"aaa","other":["bbb",1111]}

从上看出:由于javascript不支持关联数组,所以json_encode()只将索引数组(indexed array)转为数组格式,而将关联数组(associative array)转为对象格式。

关于PHP对json支持说明:
json_encode只支持UTF-8编码的数据;
json_decode永远只反映一个PHP对象,带上第二个参数true可返回数组:

 代码如下  

$json = '{"a":"aaa","other":["bbb",1111]}';
 
print_r(json_decode($json));
 
print_r(json_decode($json, true));  

JSON字符串转换为JSON对象

要使用上面的str1,必须使用下面的方法先转化为JSON对象:

 代码如下  

//由JSON字符串转换为JSON对象

var obj = eval('(' + str + ')');(Js自带)

或者

var obj = str.parseJSON(); //由JSON字符串转换为JSON对象

或者

var obj = JSON.parse(str); //由JSON字符串转换为JSON对象

然后,就可以这样读取:

alert(obj.name);

alert(obj.sex);

顶一下
(0)
0%
踩一下
(1)
100%
------分隔线----------------------------
你可能感兴趣的内容