您好,我想知道是否有人可以帮助我?
我有以下代码。它从php文件中检索JSON数据。 Json的格式如下:
{"Title":"rose","Price":1.25,"Number":15},{"Title":"daisy","Price":0.75,"Number":25},{"Title":"orchid","Price":1.15,"Number":7}
使用以下php代码创建此JSON:
$shop = array();
$shop = array( array( Title => "rose",
Price => 1.25,
Number => 15
),
array( Title => "daisy",
Price => 0.75,
Number => 25,
),
array( Title => "orchid",
Price => 1.15,
Number => 7
)
);
echo json_encode($shop);
每当我尝试使用obj.Title访问数据时,我都会收到一条未定义的消息。
$.ajax({
type: "GET",
url: "data.php",
success: jsonDo
});
//JSON DATA = {"Title":"rose","Price":1.25,"Number":15},{"Title":"daisy","Price":0.75,"Number":25},{"Title":"orchid","Price":1.15,"Number":7}
function jsonDo(data) {
var obj = jQuery.parseJSON(data);
alert(obj.Title)
}
我想知道如何访问JSON中的密钥并显示数据?
万分感谢。
答案 0 :(得分:2)
var obj = jQuery.parseJSON('{"Title":"rose","Price":"1.25","Number":"15"}');
alert(obj.Title);
这项工作。检查代码中的差异。
好的,这更正确:
var obj = [
{"Title":"rose","Price":"1.25","Number":"15"},
{"Title":"daisy","Price":"0.75","Number":"25"},
{"Title":"orchid","Price":"1.15","Number":"7"}
];
alert(obj[1].Title);
答案 1 :(得分:1)
您必须通过将dataType: "JSON"
参数通知ajax()
函数来指定您期望JSON对象,因此您不必解析数据。
答案 2 :(得分:1)
您的代码中似乎存在一些PHP错误。这可能导致php提出通知/警告,这可能会破坏Json输出并导致javascript在尝试解析时引发错误。
正确的jSon输出应该是
[{"Title":"rose","Price":1.25,"Number":15},{"Title":"daisy","Price":0.75,"Number":25},{"Title":"orchid","Price":1.15,"Number":7}]
因为它在数组中,所以JS应该是: $就({ 类型:“GET”, url:“data.php”, 成功:jsonDo });
function jsonDo(data) {
var obj = jQuery.parseJSON(data);
alert(obj[0].Title)
}
答案 3 :(得分:0)
您应该只使用jQuery的$.getJSON
方法:
$.getJSON('data.php',function(data) {
alert(obj.Title);
});
答案 4 :(得分:0)
尝试obj [0] [“Title”]或obj [0]。标题
不要忘记你已经嵌套了很多数组,yoyu需要再次访问它们。