ホームページ > バックエンド開発 > PHPチュートリアル > オブジェクトをJSONに変換する方法

オブジェクトをJSONに変換する方法

WBOY
リリース: 2016-06-13 13:02:46
オリジナル
969 人が閲覧しました

オブジェクトを json に変換する方法
オブジェクトができました
user Object ([User_id:private] => 1 [Account:private] => abc [Password:private] => abc [User_name:private] => zhangsan [Creat_time:private] => 2012-11 -12 14:56:32 )
それをjson形式にパッケージ化したい(実際には別のphpエンド[ウェブサービス]に送信する必要がある)
達成したい具体的なプロセス:
PHP サイド 1 -> json 文字列 -> PHP サイド 2 -> json 文字列 -> オブジェクトまたは配列 (できれば配列) に戻します。 json_decode で出てくるのはいつも stdClass Object() ですが、意味が分かりません。アドバイスをお願いします。

-----最善の解決策---------ユーザーオブジェクトに復元したいので、そこでシリアル化機能を使わせてもらいました

php オブジェクトに復元する必要はないので、json
を使用するだけです。 $p = 新しいユーザー;
$s = json_encode($p);

$o = json_decode($s) //オブジェクトに復元します
$a = json_decode($s, true) //配列
に復元します。


-----その他の解決策---------json_decode は OBJECT オブジェクトとして出てきますが、それは正しい。
USER オブジェクトにデコードする場合は、リフレクションを使用する必要がある場合があります。 。 。


-----その他の解決策----------------------json は js との対話に使用されますデータ形式には、PHP でのみ利用可能な情報は含まれません。したがって、元の形に戻すことは不可能です

PHP のシリアル化関数
を使用する必要があります。
T オブジェクト

class T {<br />
  public $var = 123;<br />
}<br />
$p = new T;<br />
$s = serialize($p);<br />
$x = unserialize($s);<br />
print_r($x);<br />
ログイン後にコピー
(
[var] => 123
)



-----その他の解決策--------モデレータさん、返信ありがとうございます!オブジェクトのシリアル化は次のようになります
O:4:"ユーザー":2:{s:13:"ユーザーユーザーID";s:1:"1";s:13:"ユーザーアカウント";s:3:"zzz";}
まだjson形式ではありません。文字列をインターセプトする必要がありますか?やらないのが一番です - - 今後データ量が増えてくると、何か危険が潜んでいるか分かりません
シリアル化を通じて直接渡される場合も文字列になります。ただし、Web サービスを作成する場合は、Java や .net などへの転送など、クロスプラットフォームを考慮する必要があるため、json
を転送するのが最善です。 簡単に言うと、私の要件はオブジェクトを
に変換することです。 user Object ( [User_id:private] => 1 [Account:private] => zzz )
json 形式に変換


-----その他の解決策----------------------よろしくお願いします注意を払ってください!
ここで、単純なオブジェクトを直接 json_encode() すると、出力は空のオブジェクトになります {}
まだ要件を満たしていません!
私の考えはさらに明確になりました。

------その他の解決策---------解決策を見つけました。
PHP はオブジェクトを強制的に配列に入れることができます $user = json_encode((array)$user);
このようにして、json
にパッケージ化できます。 オブジェクト: ユーザー オブジェクト ( [User_id:private] => 1 [Account:private] => zzz )
配列 json_encode() に変換後: {"u0000useru0000User_id":1,"u0000useru0000Account":"zzz"}
json を受信し、 json_decode() を使用して配列に変換します: Array ( [userUser_id] => 1 [userAccount] => zzz )
ご協力いただきました xuzuning モデレーターに改めて感謝いたします。ありがとうございました!

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート