2015-12-14 4 views
2

Мне нужно создать этот массив JSON в PHP. Если я echo это:Создание массива JSON в PHP

{"SUCCESS":[{"message":"Your Accout Info","AccoutInfo":{"credit":"$56.98USD","mail":"[email protected]","currency":"USD"}}],"apiversion":"2.3.1"} 

эхо выше код работает, как я хочу.


ниже код построения массива не работает:

header('Content-type:application/json;charset=utf-8'); 
    $data[SUCCESS] = array(
     'credit' => '$56.98USD', 
     'mail' => '[email protected]', 
     'message' => 'Your Accout Info', 
     'currency' => 'USD', 
     'apiversion' => '2.3.1' 
    ); 

    echo json_encode($data); 

Что я здесь отсутствует? Благодаря


UPDATE:

Я обновил свой код к этому:

$data = array('SUCCESS' => array(
     'message' => 'Your Accout Info', 
     'AccoutInfo' => array(
     'credit' => '$56.98USD', 
     'mail' => '[email protected]', 
     'currency' => 'USD'), 
     'apiversion' => '2.3.1') 
    ); 

И теперь я получаю этот результат:

{"SUCCESS":{"message":"Your Accout Info","AccoutInfo":{"credit":"$56.98USD","mail":"[email protected]","currency":"USD"},"apiversion":"2.3.1"}} 

Но мне это нужно результат:

{"SUCCESS":[{"message":"Your Accout Info","AccoutInfo":{"credit":"$56.98USD","mail":"[email protected]","currency":"USD"}}],"apiversion":"2.3.1"} 

Любые советы для решения этой проблемы?

ответ

1

изменение

$data[SUCCESS] = array(... 

в

$data["SUCCESS"] = array(
0

Изменения в

$data = array('SUCCESS' => array(
     'credit' => '$56.98USD', 
     'mail' => '[email protected]', 
     'message' => 'Your Accout Info', 
     'currency' => 'USD', 
     'apiversion' => '2.3.1' 
    ) 
); 

echo json_encode($data); 
1

Во-первых, создать $data, он может быть объектом или массивом и использовать SUCCESS в виде строки 'SUCCESS', а не неопределенная константа.

header('Content-type:application/json;charset=utf-8'); 
$data = array('SUCCESS' => array(
     array(
      'AccoutInfo' => array(
       'credit' => '$56.98USD', 
       'mail' => '[email protected]', 
       'currency' => 'USD' 
      ), 
      'message' => 'Your Accout Info', 
     ) 
    ), 
    'apiversion' => '2.3.1' 
); 

echo json_encode($data); 

также вы жесткий JSON код и структура вы пытаетесь построить очень разные

+0

Не работает, похоже, что «AccoutInfo» снова является массивом внутри массива? – Cyborg

+0

Пожалуйста, уточните мой обновленный вопрос – Cyborg

+0

Отметьте мое обновление – Musa

0

Наконец я получил это работает :-)

<?php 
    header('Content-type:application/json;charset=utf-8'); 
    $data = Array 
    (
     'SUCCESS' => Array 
      (
       '0' => Array 
        (
         'message' => 'Your Accout Info', 
         'AccoutInfo' => Array 
          (
           'credit' => '$56.98USD', 
           'mail' => '[email protected]', 
           'currency' => 'USD' 
          ) 
        ) 
      ), 
     'apiversion' => '2.3.1' 
     ); 

    echo json_encode($data); 
?> 

Благодаря @Musa, который указал мне правильное направление.

Смежные вопросы