我遇到一些问题需要接收JSON响应。这是POST响应:
{
"id": xxxxx,
"name": "xxx",
"description": null,
"latitude": null,
"longitude": null,
"created_at": "2015-11-28T12:52:07Z",
"elevation": null,
"last_entry_id": null,
"ranking": 15,
"metadata": null,
"username": "xxxxxxxxxx",
"tags": [],
"api_keys": [
{
"api_key": "XXXXXXXXXXXXX",
"write_flag": true
},
{
"api_key": "XXXXXXXXXXXXX",
"write_flag": false
}
]
}
这是我在jQuery中的功能:
function Thingspeak(){
var API = $('#API_Key').val();
$.ajax({
type: "POST",
url: "https://thingspeak.com/channels.json",
data: {api_key: API, name: 'test', field1: 'tm', field2: 'hm', field3: 'bn'},
success: function(data) {
var id = data.id;
var API_r = data.api_keys[0][0];
var API_w = data.api_keys[1][0];
console.log(id+": "+API_r+" "+API_w)
}
});
}
我完全收到了channel_id,但对于api_keys,我试图寻找一些方法来接收,但没有任何运气。我认为这是一个非常简单的问题,但我完全坚持这一点。
答案 0 :(得分:1)
data.api_keys
是一个数组对象。
当然,您可以使用array
访问[0]
的第一个元素。
但如果你打印它:
console.log( data.api_keys[0] );
您会看到data.api_keys[0]
是对象,包含2个道具 - api_key
和write_flag
。所以正确的代码应该是:
console.log( data.api_keys[0].api_key );
// or
console.log( data.api_keys[0]["api_key"] );
答案 1 :(得分:0)
var API_r = data.api_keys[0].api_key;
var API_w = data.api_keys[1].api_key;