为了方便地处理JSON数据,JSON提供了json.js包,下载地址 注意:GSON为json的升级版,更容易使用,下载地址
JSON 结构有两种结构:
json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构。
- 对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,…}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。
示例:
var person = {"name":"zdc","age":"22","hight":"183"};
var person = {"name":"zdc",
"adress":{
"city":"henan",
"street":"zhengzhou"
}};
注意:调用的时候,例如person.name~~~person.adress.city
2. 数组:数组在js中是中括号“[]”括起来的内容,数据结构为[“java”,“javascript”,“vb”,…],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。
示例:
var person = ["zdc","aa","bb"];
var person = [{"name":"zdc","age":22},{"name":"ljh","age":25}];
在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。
JSON字符串:
var str1 = '{ "name": "cxh", "sex": "man" }';
JSON对象:
var str2 = { "name": "cxh", "sex": "man" };
eval()函数:(为JavaScript内置方法)
eval()函数可计算某个字符串,并执行其中的JavaScript代码
代码:(注意:eval函数里面填写的字符串)
<script type="text/javascript">
eval("x=10;y=20,document.write(x*y)");
doucument.write(eval("2+2"));
var x=10;
document.write(eval(x+17));
</script>
json字符串与json对象之间转换:
这里使用的是json2.js中的方法
- stringify()方法将json对象转换为json字符串。
- parse()方法将json格式的字符串转换为json数据对象。
- 当然将字符串转化为json对象还有一种JavaScript内置方法eval()方法。
示例:
//声明普通字符串
var normalstring=*'{persons:[{name: "jordan" sex:"m",age:"40"},
{name:"bryant" ,sex:"m",age:"28*"}]}';
//声明JSON格式的字符串
var jsontext=*'"persons":([{"name":"jordan","sex":"m","age":."40"},
{"name":"bryat","sex.:","gg."*8*"}}';
var myjson = eval(normalstring);
with (document){
writeln('转换后的JSON对象: '+ myjson);
document.writeln('<br>myjson[0].name=' + myjson[0].name);
var text = JSON.stringify(myjson);
document.writeln('<br>转换后的json文本: ' + text);
var myData = JSON.parse(jsontext);
document.writeln('<br>转换后的JSON对象: ' + myData);
document.writeln('<br>myjson[1].name=' + myjson[1].name);
输出的结果为:
转换后的ISON对象: [bjet Objc,lobjec Objece
myjson[0] name=jordan
转换后的json文本: ["name"jordan" "ex"m"ge*"40"3{ nae."ryand',"ex"e*.*28*}
转换后的JSON对象: [objecet Object]
myjson[1]name=bryant
关于json具体的使用,我也是借鉴别人的,我感觉这位博主大大写的很不错,可以多学习!!!!!!!!!!