我试图用JQuery getJSON和ajax解析以下json响应:
[{"iId":"1","heading":"Management Services","body":"Program Overview
January 29, 2009
"}]
我也试过它像这样转义"/"字符:
[{"iId":"1","heading":"Management Services","body":"Program Overview <\/h1>
January 29, 2009<\/h1>"}]
当我使用getJSON时,它不会执行回调.所以,我用JQuery ajax尝试了如下:
$.ajax({ url: jURL, contentType: "application/json; charset=utf-8", dataType: "json", beforeSend: function(x) { if(x && x.overrideMimeType) { x.overrideMimeType("application/j-son;charset=UTF-8"); } }, success: function(data){ wId = data.iId; $("#txtHeading").val(data.heading); $("#txtBody").val(data.body); $("#add").slideUp("slow"); $("#edit").slideDown("slow"); },//success error: function (XMLHttpRequest, textStatus, errorThrown) { alert("XMLHttpRequest="+XMLHttpRequest.responseText+"\ntextStatus="+textStatus+"\nerrorThrown="+errorThrown); } });
ajax命中错误并警告以下内容:
XMLHttpRequest=[{"iId":"1","heading":"Management Services","body":"Program Overview
January 29, 2009
"}] textStatus=parseerror errorThrown=undefined
然后我尝试了一个简单的JQuery get调用,使用以下代码返回JSON:
$.get(jURL,function(data){ var json = eval("("+data+");"); wId = json.iId; $("#txtHeading").val(json.heading); $("#txtBody").val(json.body); $("#add").slideUp("slow"); $("#edit").slideDown("slow"); })
.get返回JSON,但无论我如何修改JSON(内容类型标题,格式的其他变体等),eval都会出现错误.
我想到的是,在JSON中返回HTML并解析它似乎存在问题.但是,我希望我可能错过了一些允许我通过JSON获取此数据的内容.有没有人有任何想法?
您拥有的JSON字符串是一个内部有1个对象的数组,因此要访问该对象,您必须首先访问该数组.使用看起来像这样的json.php:
[ { "iId": "1", "heading": "Management Services", "body": "Program Overview
January 29, 2009
" } ]
我刚试过这个
$.getJSON("json.php", function(json) { alert(json[0].body); //Program Overview
January 29, 2009
alert(json[0].heading); // "Management Services" alert(json[0].iId); // "1" });
我也试过这个:
$.get("json.php", function(data){ json = eval(data); alert(json[0].body); //Program Overview
January 29, 2009
alert(json[0].heading); // "Management Services" alert(json[0].iId); // "1" });
他们都对我很好.