jQuery JSON和PHP关联数组数组问题

时间:2012-07-04 21:26:20

标签: php jquery json

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

我有以下代码。它从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中的密钥并显示数据?

万分感谢。

5 个答案:

答案 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需要再次访问它们。