c273218496
2016-09-20 02:42
采纳率: 33.3%
浏览 1.5k
已采纳

Ajax 返回的json数组解析

[
{"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转对象。解析不了,请大神帮帮忙

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • guwei4037 2016-09-20 03:13
    已采纳

    能弹出。

     <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>
    
    点赞 打赏 评论
  • Bug开发攻城狮 2016-09-20 02:48

    参考
    http://blog.csdn.net/zy_281870667/article/details/50484876

    文中的第六条,取出来的是数组,用for循环遍历即可

    点赞 打赏 评论
  • 摇摆Maori 2016-09-20 02:49

    eval是js的运行函数,也是json字符串转json对象函数

    建议使用jquery的 parseJSON函数转换

     dada= eval("("+data+")");
    for(var i=0,i<data.length;i++){
        var from里的值 = data[i].form;
    }
    
    点赞 打赏 评论
  • 哦麦滴 2016-09-20 02:52

    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"));
    }

    点赞 打赏 评论
  • 小菜前端 2016-09-20 02:55

    这个问题有很多解决办法啊,如果你有用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)
    
    点赞 打赏 评论
  • c273218496 2016-09-20 03:27

    谢谢各位大神们,小弟感激学习了。回答的都可以实现

    点赞 打赏 评论
  • 左逸枫1993 2016-09-21 01:36

    我正好同问,也遇到过类似的问题,多谢提问和各位大神回答

    点赞 打赏 评论

相关推荐 更多相似问题