访问json数组元素

时间:2012-01-06 10:19:24

标签: javascript jquery json

这可能是非常简单的修复方法。我发布到一个php页面,它返回在db-中创建的新元素的ID(通过$.ajax发布) - 我已经记录了返回的值。

以下代码是我用来发布的代码

$.ajax({
               type: "POST",
               url: "<?=base_url()?>events/add_tag_js/",
               data: url,
               success: function(html){

                   $("#tag_list").append('<li><span id="" class="tag">'+formvalue+'<span class="remove_tag"><a class="remove_tag_link" href="#">x</a></span></span></li>');
                   $("#add_tag").val('');
                   console.log(html);
               },
               failure: function(){
                    $('.error').show();
                    $("#add_tag").val('');
               }

            });

console.log的返回值是

{"error":false,"msg":"Tag added","id":44}

但当我alert(html.id)时,我得到了未定义的内容?我需要解析返回的json吗?或者我的json是不正确的?

2 个答案:

答案 0 :(得分:2)

也许您没有在服务器端脚本上设置正确的内容类型,因此jQuery不知道这是JSON。因此,要么在服务器脚本上将内容类型设置为application/json,要么也可以使用dataType参数指示您在请求中预期JSON:

...
type: "POST",
url: "<?=base_url()?>events/add_tag_js/",
data: url,    
dataType: 'json', // indicate that you expect JSON from the server
...

虽然建议您的服务器端脚本设置正确的内容类型。

答案 1 :(得分:0)

尝试告诉它将其作为Json处理,在您的情况下,html是一个String,因此您必须使用var myObj = eval(html);哪个不好

$.ajax({
  url: url,
  dataType: 'json',
  data: data,
  success: callback
});