2012-06-28 3 views
0

Если у меня есть файл PHP, который выводит данные в формате JSON с числовыми ключами, какJQuery JSON с массивами с числовыми ключами

<?php 
$array[1] = "abcd"; 
$array[2] = "efgh"; 
$array[3] = "1234"; 
$array[4] = "5678"; 

echo json_encode($array); 
?> 

как я получить доступ к значению для сказать ключ 4? Целое число в «data.4» ниже разбивает код. Любая помощь будет принята с благодарностью. Благодаря!

$.ajax({ 
         type: "GET", 
         url: "http://localhost:8888/myapp/json/json_data", 
         async: false, 
         beforeSend: function(x) { 
          if(x && x.overrideMimeType) { 
           x.overrideMimeType("application/j-son;charset=UTF-8"); 
          } 
     }, 
     dataType: "json", 
     success: function(data){ 
     //$("#box").html(JSON.stringify(data, null, 4)); 
     $("#box").append("<br/>" + data.4) 
     } 
    }); 
+0

Невозможно это сделать, Нет. Do -> 'data [" 4 "]' – Ohgodwhy

ответ

3

Используйте скобки для доступа к объекту: data['4'].

Примечание: Ваш PHP не, возвращающий массив, а объект: {"1":"abcd","2":"efgh","3":"1234","4":"5678"}.

PS. У вас есть опечатка в вашем overrideMimeType. Вы не должны переопределять это, потому что используете jQuery. Для альтернативы см. $.getJSON.

+0

спасибо. Ты определенно прав. Я ценю это! – David

+0

Я должен перестать отвечать на мои ответы в комментариях. +1! – Ohgodwhy

+1

Если ключи массива вручную не установлены на стороне php, 'json_encode' вернет массив вместо объекта. – bfavaretto