访问数据结构中的元素

时间:2012-06-15 15:05:57

标签: javascript ajax arrays

我有一个很好的搜索,我很难过。这可能是一个简单的答案,但本周到目前为止工作80个小时后,我看不到它......

在我的应用程序中,我将一些变量传递给Web Service,后者传回一个包含键/值对的结构。

$.ajax({
    type: "POST",
    url: "it_submitcall.php",
    data: {callService: "getcall", callid: $("#callNumber").val()},
    dataType: "HTML",
    success: function(data){
        //do stuff here
    },
    error: function(data){
        // unable to communicate with web service stuff here
    }
});

我得到的回复是

Array
(
    [CALLID] => 44497
    [CALLERNAME] => Chris
    [TEAMID] => 1175
)

如何在javascript中访问上述元素?任何指针都会非常感激......

非常感谢。

2 个答案:

答案 0 :(得分:2)

在PHP端使用json_encode将数组转换为JSON,例如:

<?php
    $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
    echo json_encode($arr);
?>

然后在JavaScript端使用JSON.parse()来获取JavaScript对象 - 在您的情况下:

success: function(data){
    var obj = JSON.parse(data);
},

答案 1 :(得分:1)

正如@phenomnomnominal所说,您可以在PHP对象上使用json_encode()将其转换为JSON(尤其是json_decode()以将其从JSON转换为PHP对象)

一旦你理解了这一点,很好地,PHP和JS“哈希”类似的对象行为很相似(在PHP中,我们称这些关联数组和JavaScript,对象文字)。

在php中,您可以像这样访问数组$your_var

$value = $your_var[ 'key' ];

您也可以使用变量:

$key = 'key';
$value = $your_var[ $key ];

在JavaScript中,它非常相似:

var value = your_var[ 'key' ];

可替换地:

var key = 'key';
var value = your_var[ key ];

当您不需要对密钥进行可变访问时,还有一种语法更有用,也更有效:

var value = your_var.key