我一直试图使用JavaScriptSerializer类反序列化特定的JSON字符串一天,但没有成功。 我在这里已经阅读了很多帖子,但是找不到一个在设计上与我需要使用的JSON字符串类似的JSON字符串,所以我问自己的。
我需要反序列化的字符串如下:
["SomeName",[["alpha","bravo"],[1,6]],[["John","Bob","Paul","Ringo"],[1,2,1,8]]]
我想这个课会解决它,但我显然是错的:
[Serializable]
internal class OuterDeserializedObj
{
[Serializable]
internal class InnerDeserializedObj
{
public string Name { get; set; }
public List<List<string>> Array1 { get; set; }
public List<List<string>> Array2 { get; set; }
}
public List<InnerDeserializedObj> innerObj { get; set; }
}
答案 0 :(得分:1)
你的Json只是一个数组(对象数组的数组),因此我能想到的唯一方法就是在c#中创建一个类似的结构。
(使用Json.Net)
string json = @"[""SomeName"",[[""alpha"",""bravo""],[1,6]],[[""John"",""Bob"",""Paul"",""Ringo""],[1,2,1,8]]]";
var arr = JArray.Parse(json);
string name = (string)arr.OfType<JValue>().First();
var arrays = arr.OfType<JArray>()
.Select(x => x.Select(y=>y.Select(z=>(string)z)
.ToList())
.ToList())
.ToList();