[
{"from":"www.baidu.com","musci":"china","type":"Classics"},
{"from":"www.baidu.com","musci":"japen","type":"Country "},
{"from":"www.baidu.com","musci":"Americ","type":"Hip-Hop"},
{"from":"www.baidu.com","musci":"Russia","type":"Jazz"},
{"from":"www.baidu.com","musci":"Korea","type":"Pop"},
]
想循环获得里面的from的值,用了eval转对象。解析不了,请大神帮帮忙
能弹出。
<script type="text/javascript">
function test(){
var a = '[{"from":"www.baidu.com","musci":"china","type":"Classics"},{"from":"www.baidu.com","musci":"japen","type":"Country "},{"from":"www.baidu.com","musci":"Americ","type":"Hip-Hop"},{"from":"www.baidu.com","musci":"Russia","type":"Jazz"},{"from":"www.baidu.com","musci":"Korea","type":"Pop"},]';
//alert(a);
a= eval('('+a+')');
for(var i = 0 ;i<a.length;i++){
alert(a[i].from);
}
}
window.onload = test;
</script>
参考
http://blog.csdn.net/zy_281870667/article/details/50484876
文中的第六条,取出来的是数组,用for循环遍历即可
eval是js的运行函数,也是json字符串转json对象函数
建议使用jquery的 parseJSON函数转换
dada= eval("("+data+")");
for(var i=0,i<data.length;i++){
var from里的值 = data[i].form;
}
String str = "[{\"from\":\"www.baidu.com\",\"musci\":\"china\",\"type\":\"Classics\"},{\"from\":\"www.baidu.com\",\"musci\":\"japen\",\"type\":\"Country \"},{\"from\":\"www.baidu.com\",\"musci\":\"Americ\",\"type\":\"Hip-Hop\"},{\"from\":\"www.baidu.com\",\"musci\":\"Russia\",\"type\":\"Jazz\"},{\"from\":\"www.baidu.com\",\"musci\":\"Korea\",\"type\":\"Pop\"},]";
JSONArray array = JSONArray.fromObject(str);
for (int i = 0; i < array.size(); i++) {
JSONObject obj = array.getJSONObject(i);
System.out.println(obj.get("from") + "\t" + obj.get("musci") + "\t" + obj.get("type"));
}
这个问题有很多解决办法啊,如果你有用js框架,都有这些方法。其实思想就是:把它看成一个对象数组,然后在用循环遍历即可。
你的确认ajax得到的是字符串而不是已经为json对象(如用jquery,dataType指定为json,回调中的参数已经是json对象,不需要再eval),已经为对象直接遍历就行
var s = '[\
{"from":"www.baidu.com","musci":"china","type":"Classics"},\
{"from":"www.baidu.com","musci":"japen","type":"Country "},\
{"from":"www.baidu.com","musci":"Americ","type":"Hip-Hop"},\
{"from":"www.baidu.com","musci":"Russia","type":"Jazz"},\
{"from":"www.baidu.com","musci":"Korea","type":"Pop"},\
]';
var o = eval('(' + s + ')');
for(var i=0;i<o.length;i++)alert(o[i].from)
谢谢各位大神们,小弟感激学习了。回答的都可以实现
我正好同问,也遇到过类似的问题,多谢提问和各位大神回答