js将字符串转换成对象和数组

msg 通过$post方式获得的返回的
var jsons ={A:[{name:"阿克苏",spell:"akesu"}],……这样赋值的
msg jsons他们里面内容一致 但输出来就如图一样
哪位大神能将msg转换为成jsons一样??

可以这样转换(兼容性较好的做法):

var msg = '{A:[{name:"阿克苏",spell:"akesu"}]}'; // 字符串类型的 JSON 数据
var json = null;
try {
    json = (new Function('return ' + msg))();
} catch(e) {
    // 如果 JSON 数据格式有错误,进行错误处理
    console.log('数据错误');
}


---------


利用现代浏览器的特性的另一种做法是:

var msg = '{A:[{name:"阿克苏",spell:"akesu"}]}'; // 字符串类型的 JSON 数据
var json = JSON.parse(msg); // 直接利用 JSON 对象进行解析

缺点就是某些浏览器不一定支持



---------


反过来,如果要将对象转换成字符串,可以这样做,见下面代码(适用于现代浏览器,几十年前的IE6什么的运行不起来):

var jsons ={A:[{name:"阿克苏",spell:"akesu"}]}; // JS 对象
var str = JSON.stringify(jsons); // 转化对象为字符串
console.log(str); // 测试 - 输出字符串

追问

结果是这样 我哪里没对嘛? 

追答

你转换和输出的代码贴的稍微完整点,不然无法分析

追问

已经解决了,谢谢!

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-06
一个对象,但如何把文本转为对象呢。使用eval();注意一定要加括号,否则会转换失败

代码如下:

var test='{ colkey: "col", colsinfo: "NameList" }'

把文本转化为对象
var test='{ colkey: "col", colsinfo: "NameList" }'
var obj2=eval("("+test+")");
alert(obj2.colsinfo);

把文本转化为数组

代码如下:

var test='["colkey", "col", "colsinfo","NameList" ]'
var obj2=eval("("+test+")");
alert(obj2.length);
第2个回答  2015-01-26
在jsons赋值后加
jsons = eval('(' + jsons + ')');试试看追问

出来是这样的!并非A~Z那样排!

不过已经解决 !谢啦!

本回答被提问者采纳