2016-06-07 66 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}]}