PHP 5.2.13サーバーアプリケーションと通信するSilverlight 3アプリケーションを開発中です。 私たちはJSON.NETを使って仕事を終えていますが、私は辞書にいくつか問題があります。私はいくつかの実験を行うと、辞書を含むオブジェクトをデシリアライズしようとしている空の配列を辞書/オブジェクトにシリアライズして逆シリアル化する
:同等のオブジェクトをシリアル化するとき、
public Dictionary<string, Block> Table
{
get { return m_table; }
set { m_table = value; }
}
C#が適切にシリアライズし、私はそれに満足だけど、PHP側で空のTable
があると、動作しません。
$this->Table = array();
問題は、空の配列は、明らかに、連想配列とみなされていないので、それらは[]
代わりに{}
としてエクスポートされることです。
私は'null' => null
のようなものを配列に追加して(force assoc)、クライアントでいくつかのクリーンアップを行いましたが、クライアントのC#オブジェクトを制御していません。私はこの1つにこだわっている;)
あなたはどんな解決策を知っていますか?非常に高く評価お時間を
おかげで、:)
EDIT:明確にするために、私は両方とも、C#とPHPのオブジェクトの構造を制御することはできません。 私のテストでは、辞書を含むオブジェクトを作成しましたが、穴オブジェクトは一度にエンコードされます。 ここでのオーバー簡易版です:Table
はあなたがそうのように、{}
になるために[]
を強制的にJSON_FORCE_OBJECT
フラグを使用することができます
echo json_encode(new Block());
を作品simplecodeによって第二の方法を好む、あなたは組み込みの 'json_encode'機能、または他のいくつかのライブラリを使用していますか? –
@SimpleCoder yes :) – DiogoNeves
いいえ、良いです。 –