0
PythonアプリケーションからHTTP経由で受け取ったJSON辞書をC#のDictionary
にデシリアライズしたいとします。WCF DataContract:JSONオブジェクトをC#辞書にマッピングする
{
"native_dict": {
"foo": 0,
"bar": 1
},
"obj_dict": [
{"Key": "foo", "Value": 0},
{"Key": "bar", "Value": 1},
]
}
それは辞書を渡すの2つの試みが含まれています
JSONオブジェクトは、次のようになります。最初はネイティブなJSON形式で、2番目の形式はC#で必要な形式のようです。
両方が、このXML形式に変換されます:私のアプリケーションで
<root type="object">
<value type="object">
<native_dict type="object">
<bar type="number">1</bar>
<foo type="number">0</foo>
</native_dict>
<obj_dict type="array">
<item type="object">
<Value type="number">0</Value>
<Key type="string">foo</Key>
</item>
<item type="object">
<Value type="number">1</Value>
<Key type="string">bar</Key>
</item>
</obj_dict>
</value>
</root>
私はこれらのDataContractsを試してみました:それらの
[DataContract]
public class MyDto
{
[DataMember(Name = "native_dict")]
private Dictionary<string, int> MyDict1 { get; set; }
[DataMember(Name = "obj_dict")]
private MyDictionary<string, int> MyDict1 { get; set; }
}
[CollectionDataContract
(Name = "obj_dict",
ItemName = "item"
KeyName = "Key",
ValueName = "Value")]
public class MyDictionary: Dictionary<string, int> { }
なしに解決することはできません。
シリアライザを書き換えずに、シリアライザがJSONオブジェクトをDictionary
に変換するために使用できるDataContract
を定義する方法はありますか?
残念ながら、リストを使用することは私がしたいことではありません。ディクショナリは、私のインターフェイスをユーザーにとって使いやすくします。 – Corbie