json 字符串 <----> json 对象

一,字符串 -->JSON对象

 1,转换函数 JSON.parse(json_str);

 2,$.parseJSON(json_str);  用的是 jquery 的插件  所以需要引入 jq。  反过来,使用 serialize 系列方法:如:var fields = $("select, :radio").serializeArray();

 3,eval()函数可计算某一个字符串,并执行其中的javascript代码。格式:eval('(' + json_str + ')');

二,字符串 <-- JSON对象

 1,转换函数 JSON.stringify(json);

功能说完了,现在说下JSON.stringify() 这个转换函数

 

var data =[
{
    name: "程咬金",sex:"1",age:26    
},
{
    name: "程才",sex:"0",age:20
},
{
    name: "程新松",sex:"1",age:22    
},
{
    name: "程功",sex:"1",age:18    
}
];


/*只提取 用户名和性别*/
var str_json = JSON.stringify(data,["name","sex"]);
//console.log(str_json);

/*回调函数做一个映射关系,把data中的sex:“0”,“1” 转换 “男”,“女”*/
var str_json = JSON.stringify(data,function(key,value){
    if(key == 'sex'){
        return ["女",'男'][value];
    }
    return value;
});
//console.log(str_json);

最后一个方法个人理解:

  if(key == 'sex'){

    return ["女",'男'][value];  

  };

---->这里第一个数组对应,你要转换后的数据,[value]对应原数组中:K为sex,V的一个数组。value必须要和要转换数组的下标对应,不然就找不到这个值,会被过滤掉。eg:[”女“,”男“,”神“],对应“sex”的

["0“,”1“,”2“]。但如果你的sex有个”8“,但转换数据中,并没有8这个下标,那不好意思,你只能被过滤掉了.....  个人理解,望指教

 

 

 

 

posted @ 2018-03-28 16:21  Mr.Duanxj  阅读(201)  评论(0编辑  收藏  举报