2015-09-24 2 views
0

У меня есть такой массив:Как кодировать с JSON многомерный массив

array { 
    [0] => {"ID":"343","name":"John","money":"3000"} 
    [1] => {"ID":"344","name":"Erik","money":"2000"} 
    [2] => {"ID":"346","name":"Ronny","money":"3300"} 
} 

И я хочу, чтобы прочитать его из PHP в JavaScript с JSON. Как вы можете видеть, внутренний массив уже кодируется следующим образом:

json_encode($a) 

Чтобы быть читаемым из моего кода JavaScript, я хочу его со следующим синтаксисом:

"[0]" : "{"ID":"343","name":"John","money":"3000"}", 
"[1]" : "{"ID":"344","name":"Eric","money":"2000"}", 
"[2]" : "{"ID":"345","name":"Ronny","money":"3300"}", 

Как я могу это сделать?

+1

PHP json_encode() будут расшифрованы с помощью Jquery jQuery.parseJSON() – Vanojx1

+1

Использование jsonlint.com для проверки вам JSON - я вижу некоторые проблемы. –

+1

Обычно не имеет смысла самостоятельно кодировать внутренние массивы. Есть ли причина для этого, а не для кодирования всего сразу? – charlietfl

ответ

2
$arr = array(
     '[0]' => '{"ID":"343","name":"John","money":"3000"}', 
     '[1]' => '{"ID":"344","name":"Erik","money":"2000"}', 
     '[2]' => '{"ID":"346","name":"Ronny","money":"3300"}' 
    ); 
echo json_encode($arr); 
3

В заголовке, вы спросите Как кодировать с JSON многомерного массива. Я собираюсь предположить, что это ваш реальный вопрос, потому что ваш вопрос спрашивает что-то другое. Предполагая, что у вас есть массив $arr, не вызывайте json_encode() на каждый внутренний массив $a.

Вместо этого просто позвоните json_encode($arr) и он будет кодировать весь массив, включая внутренние массивы.

$arr = array (

    array ("ID" => "343", "name" => "John", "money" => "3000"), 
    array ("ID" => "344", "name" => "Erik", "money" => "2000"), 
    array ("ID" => "346", "name" => "Ronny", "money" => "3300") 

); 

$j = json_encode($arr); 

$j будет что-то вроде этого:

[{"ID":"343","name":"John","money":"3000"}, 
{"ID":"344","name":"Erik","money":"2000"}, 
{"ID":"346","name":"Ronny","money":"3300"}] 

Вы можете разобрать это довольно легко с помощью jQuery.parseJSON(). Затем вы можете просто перебрать анализируемый массив, чтобы получить то, что вы хотите от внутренних массивов.

var arr = jQuery.parseJSON('[{"ID":"343","name":"John","money":"3000"},{"ID":"344","name":"Erik","money":"2000"},{"ID":"346","name":"Ronny","money":"3300"}]'); 

for(var i = 0; i < arr.length; i++) { 
    var a = arr[i]; // Inner array. 

    console.log(a.ID); 
    console.log(a.name); 
    console.log(a.money); 
} 
Смежные вопросы