2016-06-07 70 views
1

我對酒店的API,它需要在JSON形式發送數據的工作,如何正確格式化數據作爲JSON

但我的JSON形式是錯誤的,API是行不通的。

我的代碼是: -

$json = json_encode([ 
    'RoomGuests' => [ json_encode(["NoOfAdults"=> 1,"NoOfChild"=> 0,"ChildAge"=> null])], 
]); 

而且我的輸出是: -

{ 
"RoomGuests": [ 
"{\"NoOfAdults\":1,\"NoOfChild\":0,\"ChildAge\":null}" 
] } 

而且我想這樣的結果: -

{ 
"RoomGuests": [{ 
    "NoOfAdults": 1, 
    "NoOfChild": 0, 
    "ChildAge": null 
}], } 

請讓我知道如何解決這個問題。

+0

瞭解更多關於'JSON options'這裏http://php.net /manual/ru/json.constants.php。 我在大多數情況下使用'json_encode($ array,352);'。 –

+0

你不需要第二次調用'json_encode()'。第一次調用將序列化所有嵌套數組。 – cyfur01

+0

請嘗試下面給出的答案...希望它會幫助你:) –

回答

2

使用此

$json = json_encode([ 
    'RoomGuests' => [["NoOfAdults"=> 1,"NoOfChild"=> 0,"ChildAge"=> null]], 
]); 

echo $json; 

這將成果轉化爲

{ 
    "RoomGuests": [ 
     { 
      "NoOfAdults": 1, 
      "NoOfChild": 0, 
      "ChildAge": null 
     } 
    ] 
} 
0

這是我的代碼打印輸出JSON format.You可以對其進行編輯按你:

<?php 
include_once('connect.php'); 
{ 


    error_reporting(error_reporting() & ~E_NOTICE); 

      $id = $_GET['id']; 
      $name = $_GET['name']; 
      $date = $_GET['date']; 

    $select = "select * from details"; 
    $sel = "select id,name from details"; 

    $res = mysqli_query($con, $select); 
    $result = mysqli_query($con,$sel); 



while($row = mysqli_fetch_object($res)) 
{ 
    $output[] = $row; 
} 
    if(empty($output)) 
    { 

     print(json_encode("User doesn't exist")); 
    } 
    else{ 
     while($col = mysqli_fetch_object($result)) 
     { 
      $output[] = $col; 
     } 
     if(empty($output)) 
     { 
      print(json_encode("User doesn't exits")); 

     } 
     else{ 
      print(json_encode($output)); 
     } 
    } 
} 

?> 
+1

你至少可以修改代碼,所以它會幫助OP,而不會混淆他。 – pbalazek

1

對於正確的輸出,而不是:

$json = json_encode([ 
    'RoomGuests' => [ json_encode(["NoOfAdults"=> 1,"NoOfChild"=> 0,"ChildAge"=> null])], 
]); 

足以令:

$json = json_encode([ 
    'RoomGuests' => [ ["NoOfAdults"=> 1,"NoOfChild"=> 0,"ChildAge"=> null] ], 
]); 

json_encode將遞歸地編碼所有子陣列。所以只打一次就夠了。

0
<?php 

$a = (object)[ 
    'RoomGuests' => [ 
     (object)["NoOfAdults"=> 1,"NoOfChild"=> 0,"ChildAge"=> null] 
    ], 
]; 
var_export(json_encode($a)); 

結果:

{"RoomGuests":[{"NoOfAdults":1,"NoOfChild":0,"ChildAge":null}]}