json在代码中是经常用到的,在此总结一下json字符串和对象及数组之间的相互转化:
1.javascript函数方式:
<1> JSON.stringify :把一个对象转换成json字符串
1 var jsonO = {name:"jack",age:20}; 2 JSON.stringify(jsonO); 3 ==> '{name:"jack",age:20}'; 4 5 var jsonO = [{name:"jack",age:20},{name:"tom",age:21},{name:"jim",age:22}]; 6 JSON.stringify(jsonO); 7 ==> '[{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"});