繁体   English   中英

访问json数组元素

[英]access json array elements

这可能是非常简单的修复方法。 我发布到一个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不正确?

也许您没有在服务器端脚本上设置正确的内容类型,因此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
...

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

试着告诉它把它作为Json处理,在你的情况下html是一个String,所以你必须要一个var myObj = eval(html); 这很糟糕

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM