DataContractJsonSerializerを使用した変数Type JSON配列の逆シリアル化
質問
この形式のJSON文字列があります:
string jsonStr = "[\"A\", [\"Martini\", \"alovell\"],[\"Martin\", \"lovell\"]]"
次のコードスニペットでC#.NETデシリアライザーDataContractJsonSerializerを使用してJSONをデシリアライズしようとしています
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonStr));
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof<X>);
X data = (X)serializer.ReadObject(ms);
今、JSON配列は変数タイプの配列なので、どのタイプのオブジェクトかわかりません Xは
でなければなりません文字列が
の場合jsonStr = "[[\"Martini\", \"alovell\"],[\"Martin\", \"lovell\"]]"
これを使用できます:
X = List<List<String>>
それは私にとってはうまくいくでしょう。変数型のJSON配列をデシリアライズする方法があるかどうか疑問に思っていましたか?
解決
これを行うには、 Json.NET を使用できます。
JArray a = JArray.Parse(jsonStr);
JArrayには、JSONに応じて文字列またはネストされたJArrayが含まれます。
所属していません StackOverflow