json在代码中是经常用到的,在此总结一下json字符串和对象及数组之间的相互转化:
1.javascript函数方式:
<1> JSON.stringify :把一个对象转换成json字符串
var jsonO = {name:"jack",age:20};
JSON.stringify(jsonO);
==> '{name:"jack",age:20}'; var jsonO = [{name:"jack",age:20},{name:"tom",age:21},{name:"jim",age:22}];
JSON.stringify(jsonO);
==> '[{name:"jack",age:20},{name:"tom",age:21},{name:"jim",age:22}]';
<2> JSON.parse 把一个json字符串解析成对象。
var jsonS = '{"name":"John"}';
JSON.parse(jsonS);
==> Object object
2.jquery方式:
jquery中 $.parseJSON(json)将json转换为Javascript对象,但没有提供将Javascript对象转换成json的函数。
var jsonS = '{"name":"Jack"}';
var jsonObj = $.parseJSON(json);
3.javaScript只带函数eval(),可以将json字符串转化成javascript对象
var jsonS = '[{name:"tom",age:21},{name:"Lily",age:22},{name:"John",age:23}]';
var jsonArr = [];
var json = ('('+jsonS+')');
jsonArr = json;
==> [{name:"tom",age:21},{name:"Lily",age:22},{name:"John",age:23}]
4.另外如果使用extjs插件的话,可以使用:
Ext.decode()将字符串转化成对象
Ext.encode()将json对象转化成字符串
5.如果要将获取的json对象组合成对象数组的话,直接定义一个数组,然后push一个个json对象即可
var jsonA = [];
jsonA.push({name:"milk",amount:100,color:"white"});