不能在jquery中解析json

时间:2011-11-25 09:25:10

标签: jquery json

我收到结果[object],[object],为什么我没有收到JSON数据?请纠正我。

我的jquery是

$.ajax({
            type: "GET",
            url: "js/dropDown-json.js",
            dataType:"json",
            contentType: "application/json; charset=utf-8",
            success:function(data){
                //alert(data.view);
                $.each(data.view, function(){
                    //alert(data.view.entityView[2]);

                    $("#selectFilter_dropdown ul li").append("<a href='#'>"+ data.view +"</a>");
                    });

                }

HTML

<div class="dropDown_wrapper">
                    <div id="selectFilter_dropdown">
                        <ul>
                           <li>  </li> <!-- Fetching json data -->                            
                        </ul>                                                    
                </div>

JSON是

{
    "view" : [
{ "entityView":"None"}, 
{ "entityView":"Default Entity View"}, 
{ "entityView":"Doc View 1"},
{ "entityView":"Global Entity View"},
{ "entityView":"My Items View"}
]}

但是输出是[object],[object] ......我可能知道我哪里错了吗?

3 个答案:

答案 0 :(得分:1)

您的$.each错了:

$.each(data.view, function(i, v){
    $("#selectFilter_dropdown ul li").append("<a href='#'>"+ v.entityView +"</a>");
});

v是视图中每个项目的值。

答案 1 :(得分:1)

使用以下命令以字符串格式获取响应。

response = JSON.stringify(data.view)

并在代码中使用LI使用jQuery each()函数,值为data.view.entityView。像:

$(data.view).each(function(index, item){
    $("#selectFilter_dropdown ul li").append("<a href='#'>"+ item.entityView +"</a>");
});

答案 2 :(得分:1)

data.view是一个javascript数组而不是字符串...

试试这个:

$.each(data.view, function(view){
    $("#selectFilter_dropdown ul li").append("<a href='#'>"+ view.entityView +"</a>");
});