在Jquery中读取JSON字符串
问题描述:
当我尝试读取像下面这样的JSON字符串时,它会进入无限循环。在Jquery中读取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>
不知道我在做什么错?请帮助!
答
使用jQuery.parseJSON
解析JSON字符串使用jQuery:
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"}]';
答
$("#Button1").click(function() {
var json = $.parseJSON("[{'City':'Lucknow','ID':'1'},{'City':'Mumbai','ID':'2'}]");
$.each(json, function() {
alert(this['City']);
});
这是更好地使用json2.js来自:http://www.json.org/js.html
感谢您的回复!即使这不起作用... – Bala 2010-03-26 15:45:32
@Bala:哦,'jQuery.parseJSON'被添加到1.4.1中。也许你的jQuery版本不支持它。 – Gumbo 2010-03-26 15:47:27
我使用jquery 1.4.1 – Bala 2010-03-26 15:55:55