私はDictionary<string,object>
にデシリアライズする単一レベルのjsonを持っています。Json.Netを使用してください。JSON.netは、宛先がオブジェクトの場合、json配列をJArrayにシリアル化します。どうすれば変更できますか?
ディクショナリの値は、プリミティブ、文字列、または(プリミティブ\文字列)配列です。
プリシリアライズはプリミティブと文字列の処理方法を認識しますが、プリミティブの配列に到達するとプリミティブ配列の代わりにJArray
にデシリアライズされます。
string jsonStr = @"{""obj"": 7, ""arr"": ['1','2','3']}";
Dictionary<string, object> dict = JsonConvert.DeserializeObject<Dictionary<string, object>>(jsonStr);
dict["obj"].GetType(); // long
dict["arr"].GetType(); // JArray. I would like this to be string[].
私は、逆シリアル化プロセスに干渉し、代わりにJArray
で立ち往生のプリミティブ配列を作成することができる方法を探しています:
は、ここで私が何を意味するかの小さなコード例を示します。
私はJsonSerializerSettings
でそれを試みましたが、その場を釘付けできませんでした。
参照[どのように私は、ネストされた/再帰的な辞書とリストの中にデシリアライズするJSON.NETを使用しますか?](http://stackoverflow.com/q/5546142/10263) –