使用DataContractJsonSerializer反序列化变量Type JSON数组

Sel*_*ene 9 c# json json.net

我有一个这种形式的JSON字符串:

string jsonStr = "[\"A\", [\"Martini\", \"alovell\"],[\"Martin\", \"lovell\"]]"
Run Code Online (Sandbox Code Playgroud)

我试图使用C#.NET反序列化器DataContractJsonSerializer使用以下代码片段反序列化JSON

MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonStr));
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof<X>);
X data = (X)serializer.ReadObject(ms);
Run Code Online (Sandbox Code Playgroud)

既然JSON数组是一个变量类型数组,我不知道X应该是什么类型的对象

如果我的字符串是

jsonStr = "[[\"Martini\", \"alovell\"],[\"Martin\", \"lovell\"]]"
Run Code Online (Sandbox Code Playgroud)

我可以用这个:

X = List<List<String>> 
Run Code Online (Sandbox Code Playgroud)

这对我有用.我想知道是否有任何方法可以反序列化变量类型的JSON数组?

Jam*_*ing 8

您可以使用Json.NET来执行此操作.

JArray a = JArray.Parse(jsonStr);
Run Code Online (Sandbox Code Playgroud)

JArray将包含字符串或嵌套的JArray,具体取决于JSON.