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>
04-29 04:24