次のDictionary<>
オブジェクトがあります。
Dictionary<String, object> parameters = new Dictionary<string, object>();
parameters.Add("username", "mike");
parameters.Add("password", "secret");
parameters.Add("persist", false);
シリアライズすると:
using (MemoryStream stream = new MemoryStream())
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(parameters.GetType());
serializer.WriteObject(stream, parameters);
byte[] bytes = stream.ToArray();
string json = Encoding.UTF8.GetString(bytes, 0, bytes.Length);
return json;
}
私は以下を取得します:
"[{\"Key\":\"username\",\"Value\":\"mike\"},{\"Key\":\"password\",\"Value\":\"secret\"},{\"Key\":\"persist\",\"Value\":false}]"
私が取得したいのは、次のような生のキー/値ペア マップです。
"{\"username\":\"mike\", \"password\":\"secret\", \"persist\": false}"
true に設定しようとしましUseSimpleDictionaryFormat
たが、このプロパティは効果がなく、その使用目的はどこにも記載されていません。
パラメータのキーと値のペアがコンパイル時に不明なため、カスタム クラスを使用できません。
また、JSON.NET などのサードパーティ ライブラリも使用できません。Silverlight フレームワークと Windows Phone 8 ランタイムを使用しています。