Используя Plivo api, я делаю вызов getJSON, поэтому возвращается следующее:
[
{
"group_id":"31505537702425",
"number_type":"local",
"prefix":"347",
"region":"New York, UNITED STATES",
"rental_rate":"0.80000",
"resource_uri":"/v1/Account/MAMTE4MTHJNJRKODBIMD/AvailableNumberGroup/31505537702425/",
"setup_rate":"0.00000",
"sms_enabled":true,
"sms_rate":"0.00450",
"stock":46,
"voice_enabled":true,
"voice_rate":"0.00850"
}
]
Я могу получить к нему доступ с помощью this["region"]
, например, который позволяет мне печатать Нью-Йорк, Соединенные Штаты. Нет проблем.
Но с этим массивом:
{
"api_id":"2653f0d4-c4a3-11e3-9c37-22000ac7849b",
"message":"created",
"numbers":[
{
"number":"13474749242",
"status":"Success"
}
],
"status":"fulfilled"
}
тот же подход, this["number"]
возвращает "undefined.
Полный код:
function buy_number(id) {
$("#results").html('')
$("#results").html('renting your number.... hang on a sec');
var group_id = id;
$.getJSON("/rentnumber?group_id="+group_id, function(data) {
$.each( data, function( key, value ) {
$("#results").html("");
$("#results").append('<p>You just bought '+this["number"]+'</p>');
});
});
}
Он работает, номер куплен, но я не могу отобразить результат на странице пользователя. вся помощь ценится, как всегда.
Просто делать:
this.numbers.number
или
this["numbers"].number
вместо того, что вы делаете
Вы должны использовать
this["numbers"]["number"]
потому что число внутри номеров
Вам нужно будет сделать:
this["numbers"][0]["number"];
Поскольку "числа" - это массив, а не объект, поэтому вам нужен первый элемент массива чисел.
ниже будет работать, даже если у вас есть несколько элементов в массиве чисел Demo
var i=0;
$.each(data,function(index,item){
alert(item.numbers[i].number);
i++;
});
Вы можете использовать:
$.each(data.numbers, function (key, value) {
$("#results").html("");
$("#results").append('<p>You just bought '+this["number"]+'</p>');
});