json和string 之间的相互转换
<script type="text/javascript"> //先认识一下js中json function showInfo(){ var user={ "name":"jack", //字符串类型的值 "age":18, //数字类型的值 "info":{"tel":"110","cellphone":"13613"}, //object 类型的值 "address": //数组类型的值; [ {"city":"meishang","postCode":"222222"}, {"city":"chengdu","postCode":"3333333"} ] } //user json over //简单调用 alert(user.name); alert(user.info.tel); alert(user.address[0].city); } //------------------------------------------字符串对象转成json对象 function strToJson(){ var str='{"json":"jsonData"}'; alert(typeof(str)); //方法一;JQ中的方法 //缺陷:同样的,在我们的ie兼容模式下 会报错;而且还必须需严格遵守JSON规范 var json=JSON.parse(str); //或者使用我们的 parseJSON alert(typeof(json)); alert(json.json); } function strToJson2(){ //eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号 //注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。 var str='{"json":"jsonData"}'; alert(typeof(str)); var json=eval('('+str+')'); alert(typeof(json)); alert(json.json); } function strToJson3(){ var str='{"json":"jsonData"}'; alert(typeof(str)); var json=(new Function("return"+str))(); //这个json中声明函数对象的一种方式滴呀 alert(typeof(json)); alert(json.json); } //------------------------------------------json转string类型 function jsonToStr(){ var obj={name:'jack'}; //对象 var arr=[]; arr.push(obj); //我们都可以将对象 数组 转成我们的string alert(typeof(obj)); alert(typeof(arr)); var result1=JSON.stringify(obj); //或者使用 toJSONString var result2=JSON.stringify(arr); alert(typeof(result1)); alert(typeof(result2)); //缺陷就是在我们ie 兼容性模式下,找不到我们的JSON对象报错, } //当然我们也可以手写一个转化的方法 function jsonToStr2(){ var obj={name:'jack'}; //对象 var jStr="{"; for(var property in obj){ jStr+="'"+property+"':'"+obj[property]+"'"; } jStr+="}"; alert(typeof(jStr)); alert(jStr); } //当然最好还有我们的终结方法:使用插件;json2.js </script>