Windows Phone 7.1 (Mango RC) で DataContractJsonSerializer を使用して、Web サービスからデータを取得しています。私の Web サービスからのデータは次のようになります。
[
{
"Color":"\"black\"",
"CurrentPlayerTurn":1,
"GameId":"\"3adbffa7b5744634aca0e4b743014247\"",
"GameState":0,
"OtherPlayerId":null
},
{
"Color":"\"black\"",
"CurrentPlayerTurn":1,
"GameId":"\"a292247719e34811a93598d2ff3eb13c\"",
"GameState":0,
"OtherPlayerId":"\"shmoebob\""
}
]
ご参考までに、このデータは CouchDB の map/reduce クエリの下流にあり、その出力は次のようになります。
{"total_rows":4,"offset":1,"rows":[
{"id":"3adbffa7b5744634aca0e4b743014247","key":"kotancode","value":[0,1,"black",null]},
{"id":"a292247719e34811a93598d2ff3eb13c","key":"kotancode","value":[0,1,"black","shmoebob"]}
]}
私の WP7.1 クライアントで何が起こっているかというと、JSON の最初のブロブからオブジェクト配列を逆シリアル化すると、文字列内の引用符が実際に取得され、プロパティごとに手動で取り除く必要があります。
私の WP7.1 クライアントがヒットしている Web サービスは v0.5 WCF Web API RESTful サービスであり、そのデータを JSON として公開しています。
このパイプラインのどこかで、引用符が文字通り扱われる原因となっている何か間違っていることがありますか...または、DataContractJsonSerializerで実際に引用符を与えないようにするためにできることはありますか?