当我尝试读取如下所示的JSON字符串时,它会进入无限循环。
<script language="javascript">
$(document).ready(function() {
$("#Button1").click(function() {
var json = "[{'City':'Lucknow','ID':'1'},{'City':'Mumbai','ID':'2'}]";
$.each(json, function() {
alert(this['City']);
});
});
</script>
不确定我做错了什么?请帮帮忙!
答案 0 :(得分:5)
使用jQuery.parseJSON
使用jQuery解析JSON字符串:
var json = "[{'City':'Lucknow','ID':'1'},{'City':'Mumbai','ID':'2'}]";
$.each(jQuery.parseJSON(json), function() {
alert(this['City']);
});
jQuery.parseJSON
的优点是,如果它支持,它会使用浏览器的本机实现JSON.parse
。
编辑这不起作用的问题可能是JSON只允许用双引号声明字符串。相应的excerpt from the JSON specification:
string = quotation-mark *char quotation-mark char = unescaped / escape ( %x22 / ; " quotation mark U+0022 %x5C / ; \ reverse solidus U+005C %x2F / ; / solidus U+002F %x62 / ; b backspace U+0008 %x66 / ; f form feed U+000C %x6E / ; n line feed U+000A %x72 / ; r carriage return U+000D %x74 / ; t tab U+0009 %x75 4HEXDIG ) ; uXXXX U+XXXX escape = %x5C ; \ quotation-mark = %x22 ; " unescaped = %x20-21 / %x23-5B / %x5D-10FFFF
所以以下内容应该有效:
var json = '[{"City":"Lucknow","ID":"1"},{"City":"Mumbai","ID":"2"}]';
答案 1 :(得分:0)
$("#Button1").click(function() {
var json = $.parseJSON("[{'City':'Lucknow','ID':'1'},{'City':'Mumbai','ID':'2'}]");
$.each(json, function() {
alert(this['City']);
});
的json2.js