インターフェイスとしてデータを返すphpの問題
データがある場合、{"status":"0","message":"u9a8cu8bc1u7801u9519u8bef","data":{"a":"1"}},を返します。ここで、データの内部は $result です。$result が空の場合、$result = array(); 出力 {"status":"0","message":"u9a8cu8bc1u7801u9519u8bef","data":[]} が返されます。 data それは角括弧です。{"status":"0","message":"u9a8cu8bc1u7801u9519u8bef","data":{}} の形式でデータを中括弧に変更するにはどうすればよいですか?
通常は必要ありません、そうでない場合は書き直す必要があります
通常は必要ありません、そうでない場合は書き直す必要があります
戻り値は次のようになります
echo json_encode($array)
これを次のように変更します
echo str_replace('[]', '{} ', json_encode($array));
使用方法 JSON_FORCE_OBJECT パラメーターのみを使用します
<?php$a=array();var_dump(json_encode($a,JSON_FORCE_OBJECT));$a=array(1,2,3);var_dump(json_encode($a,JSON_FORCE_OBJECT));$a=array("ret"=>0);var_dump(json_encode($a,JSON_FORCE_OBJECT));
string(2) "{}"string(19) "{"0":1,"1":2,"2":3}"string(9) "{"ret":0}"
JSON_FORCE_OBJECT (整数)
非連想配列の代わりにクラス (オブジェクト) を出力させるには配列。配列が空で、受信側がクラス (オブジェクト) を必要とする場合に特に便利です。 PHP 5.3.0 以降で有効になります。