1

嗨,我想知道是否有人可以帮助我?

我有以下代码。它从 php 文件中检索 JSON 数据。Json 格式如下:

{"Title":"rose","Price":1.25,"Number":15},{"Title":"daisy","Price":0.75,"Number":25},{"Title":"orchid","Price":1.15,"Number":7} 

此 JSON 是使用以下 php 代码创建的:

$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 中的键并显示数据?

太感谢了。

4

5 回答 5

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);
于 2012-07-04T21:33:53.613 回答
1

dataType: "JSON"您必须通过将参数通知函数来指定您期望的是 JSON 对象ajax(),因此您不必解析数据。

于 2012-07-04T21:38:58.273 回答
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应该是: $.ajax({ type: "GET", url: "data.php", success: jsonDo });

function jsonDo(data) {
    var obj = jQuery.parseJSON(data);
    alert(obj[0].Title)

}
于 2012-07-04T21:43:38.520 回答
0

你应该只使用jQuery的$.getJSON方法:

$.getJSON('data.php',function(data) {
    alert(obj.Title);
});
于 2012-07-04T21:30:45.537 回答
0

尝试 obj[0]["Title"] 或 obj[0].Title

不要忘记您已经嵌套了很多数组,并且 yoyu 需要再次以这种方式访问​​它们。

于 2012-07-04T21:32:49.687 回答