JSON的新手,我可以用这个json响应做什么

时间:2009-02-04 19:21:21

标签: javascript json

网站会返回以下JSON响应,我将如何使用它(在javascript中)?

[{"ID1":9996,"ID2":22}]

JSON是否只返回一个数组?

6 个答案:

答案 0 :(得分:7)

如果你使用http://www.JSON.org/json2.js,你可以使用它的方法JSON.parse来检索作为对象的json 字符串(不使用eval(被认为是邪恶的)),所以在这种情况下你会使用:

var nwObj = JSON.parse('[{"ID1":9996,"ID2":22}]');
alert(nwObj.ID1); //=> 9996

答案 1 :(得分:6)

我们使用:

function evalResponse(response) {
    var xyz123 = null;
    eval("xyz123 = " + response);
    return xyz123;
}

另一种方法是简单地使用:

var myObj = eval(response);

基本上,你必须在响应上调用eval()来创建一个javascript对象。这是因为当你从AJAX调用中获取它时,响应本身只是一个字符串。在你eval之后,你有一个你可以操纵的对象。

function myCallback(response) {
    var myObj = evalResponse(response);
    alert(myObj.ID1);
}

您可以使用javascript库为您处理此问题。或者,您可以尝试自己解析字符串。 eval()有自己的问题,但有效。

答案 2 :(得分:2)

它看起来像一个包含两个属性的单个对象的数组。我更希望看到相同的数据结构如下:

  

{ “ID”:[9996,22]}

然后你有一个对象持有一个包含两个元素的数组,这似乎更适合所提供的数据。然后使用Endangered的evalResponse()代码,您可以像这样使用它:

var responseObj = evalResponse(response);

// responseObj.ID[0] would be 9996, responseObj.ID[1] would be 22

答案 3 :(得分:1)

我认为其他答案可能无法解答您的问题,也许您正在寻找一种方法来使用“1个对象的数组”。也许这可以提供帮助:

var arr = [{"ID1":9996,"ID2":22}];
var obj = arr[0];
var id1 = obj.ID1;
var id2 = obj.ID2;

答案 4 :(得分:0)

以下是您获取数据的方式:

<script type="text/javascript" >
var something = [{"ID1":9996,"ID2":22}]
alert(something[0].ID1)
</script>

答案 5 :(得分:0)

您发布的JSON表示包含一个对象的数组,该对象具有属性ID1和ID2(初始化为冒号后的相应值)。

要将字符串转换为javascript对象,请将其传递给eval,如下所示:

var obj = eval('[{"ID1":9996,"ID2":22}]');

但是,如果您只有一个对象而不是数组,则此方法将失败,因此将其包装在括号中会更安全:

var obj = eval('(' + jsonResponse + ')');