2015-08-14 3 views
1

Мне нужно создать json с несколькими уровнями через PHP.Создайте JSON в PHP с несколькими уровнями

{ 
    "accident": { 
     "dateTime": "2015-08-08T16:12:08", 
     "desc": "string" 
    }, 
    "calculationInput": { 
     "idBlockCodes": [ 
      { 
       "code": 51, 
       "value": 1 
      } 
     ], 
     "wageRates": { 
      "labourRate1": 10, 
      "labourRate2": 11, 
      "labourRate3": 22, 
      "labourRate4": 33, 
      "labourRateD": 44, 
      "paintRate": 55 
     } 
    }, 
    "caseNumber": "F4Q", 
    "vehicle": { 
     "adminData": { 
      "firstRegDate": "2015-07-08", 
      "numberPlate": "MI214AF" 
     }, 
     "identification": { 
      "vin": "VF7S6NFZF56215577" 
     }, 
     "owner": { 
      "city": "Praha", 
      "country": "CZE", 
      "email": "[email protected]", 
      "name": "Fero Taraba", 
      "phone": "777111222", 
      "phone2": "999555333", 
      "postCode": "07101", 
      "street": "Kukureliho 18" 
     } 
    } 
} 

Я actuyltry это и возможно для меня, чтобы создать единый уровень JSON, другими словами:

$data = array (
     "caseNumber" =>"F4Q"  
     ); 

, а затем просто легко:

$data_json= json_encode($data); 

Но кто-то может объяснить мне, как могу ли я сделать это второе или даже 3-е дерево уровней для преобразования в JSON?

Я буду очень благодарен вам за помощь. Благодаря

EDIT: Большинство ответов действительно привести меня правильно, только проблема сейчас эта часть:

"idBlockCodes": [ 
       { 
        "code": 51, 
        "value": 1 
       } 
      ], 

где есть [], которые представляют собой некоторый список blockCodes. Любая идея, что с этим делать? :)

+0

это [] что вы хотите получить? – inetphantom

ответ

1

В чем ваш вопрос в точности?

Вы можете создать массив, а затем просто кодировать его json?

$data = array(
    'Key 1' => array(
     'Key 2 - Key 1' => array(
       'Key 3 - Key 1' => array() 
     ) 
    ) 
); 
echo json_encode($data); 
+0

Спасибо YOURI, но я afriad это не будет правильно бороться с этой частью: ' "idBlockCodes": [ { "код": 51, "значение": 1 } ],' – Andurit

1

Просто используют ассоциативные массивы

$data = array (
     "caseNumber" =>"F4Q",  
     "vehicle" => array (
      "adminData"=> 
        array(
         "firstRegDate"=> "2015-07-08", 
         "numberPlate"=> "MI214AF" 
        ), 
       "identification" => 
         array(
         "vin"=> "VF7S6NFZF56215577" 
        )  
      ) 
     ); 

печать из

{"caseNumber":"F4Q","vehicle":{"adminData":{"firstRegDate":"2015-07-08","numberPlate":"MI214AF"},"identification":{"vin":"VF7S6NFZF56215577"}}} 
+0

Привет, благодарственное вы за свой ответ, это определенно имеет смысл, но могу ли я спросить, что делать с [] такими скобками? :) Пожалуйста, проверьте мои изменения в вопросе – Andurit

1

Использование ассоциативных массивов:

$data = array (
    "caseNumber" =>"F4Q",  
    "vehicle" => array (
     "adminData"=> 
       array(
        "firstRegDate"=> "2015-07-08", 
        "numberPlate"=> "MI214AF" 
       ), 
      "identification" => 
        array(
        "vin"=> "VF7S6NFZF56215577" 
       )  
     ) 
    ); 

echo json_encode($data) 
+0

Привет, Благодарю вас за ваш ответ, он определенно имеет смысл, но могу ли я спросить, что делать с [] такого рода скобками?:) Пожалуйста, проверьте мои изменения в вопросе – Andurit

+0

Я думаю, что это неАссоциативный массив в php? Всегда избегайте таких списков в массивах JSON. – inetphantom

+0

спасибо за совет. Я даю вам большой палец для ответа. Во всяком случае, это не мой выбор, как выглядит JSON, потому что это то, что служба REST ожидает, что мне просто нужно сделать это на PHP :) – Andurit

0

Для вас, чтобы конвертировать все ваши данные в массив:

Необходимо сначала использовать json_encode();

$a = json_encode($yourData); 

И затем расшифровать его:

$b = json_decode($a, true); 
    echo '<pre>'; 
    print_r($b); //print it 

Он отображает связанные массивы с ним

1

вы получите ваши скобки, поставив дополнительный массив вокруг объекта.

$data = array("idBlockCodes" => array(
      array(
       "code" => 51, 
       "value" => 1 
      ) 
     ) 
); 

print json_encode($data); 
+0

Невзирая на то, что на этот раз это другие скобки? [ вместо { ? :) – Andurit

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