网站会返回以下JSON响应,我将如何使用它(在javascript中)?
[{"ID1":9996,"ID2":22}]
JSON是否只返回一个数组?
答案 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 + ')');