используя jquery getJSON, как я могу получить доступ к массиву json, чтобы выбрать один элемент?

0

Используя 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>');
                     });
               });
        }

Он работает, номер куплен, но я не могу отобразить результат на странице пользователя. вся помощь ценится, как всегда.

  • 0
    Можете ли вы попробовать это --- это ["числа"] ["число"]
Теги:
getjson
plivo

5 ответов

0
Лучший ответ

Просто делать:

this.numbers.number

или

this["numbers"].number

вместо того, что вы делаете

  • 0
    this.numbers ["number"] Я думаю, спасибо!
  • 0
    Пожалуйста ;)
0

Вы должны использовать

    this["numbers"]["number"]

потому что число внутри номеров

0

Вам нужно будет сделать:

this["numbers"][0]["number"];

Поскольку "числа" - это массив, а не объект, поэтому вам нужен первый элемент массива чисел.

0

ниже будет работать, даже если у вас есть несколько элементов в массиве чисел Demo

              var i=0;
              $.each(data,function(index,item){  
              alert(item.numbers[i].number);
              i++;
              });
  • 0
    спасибо, это работает!
  • 0
    рад, что это помогло
0

Вы можете использовать:

$.each(data.numbers, function (key, value) {
    $("#results").html("");
    $("#results").append('<p>You just bought '+this["number"]+'</p>');
});

Демо-версия скрипта

  • 0
    это прекрасно работает, другие выше, кажется, нет. Спасибо всем за вклад, очень ценю это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню