C# 如何反序列化特定的JSON字符串
一天来,我一直在尝试使用JavaScriptSerializer类反序列化特定的JSON字符串,但没有成功。 我在这里读了不少帖子,但找不到一个在设计上与我需要使用的JSON字符串类似的地址,所以我问自己的问题 我需要反序列化的字符串如下所示:C# 如何反序列化特定的JSON字符串,c#,json,deserialization,C#,Json,Deserialization,一天来,我一直在尝试使用JavaScriptSerializer类反序列化特定的JSON字符串,但没有成功。 我在这里读了不少帖子,但找不到一个在设计上与我需要使用的JSON字符串类似的地址,所以我问自己的问题 我需要反序列化的字符串如下所示: ["SomeName",[["alpha","bravo"],[1,6]],[["John","Bob","Paul","Ringo"],[1,2,1,8]]] 我以为这门课能解决这个问题,但我显然错了: [Serializable] internal
["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; }
}
您的Json只是一个对象数组的数组,因此我能想到的唯一方法就是用c创建一个类似的结构 使用
您的Json只是一个对象数组的数组,因此我能想到的唯一方法就是用c创建一个类似的结构 使用
你能把整个JSON都贴出来吗?JSON似乎无效。我现在从Provider添加了一个完整的JSON复制+粘贴。该JSON字符串的作者一定是个真正的程序员。您的类的问题在于名称不是对象中元素的属性,而是您接收到的数组/列表的第一个元素,其中第一个元素是字符串,其余的元素是字符串列表。我很想为您提供更多帮助,但我不确定如何使用JavaScriptSerializer解析它……我完全同意jgauffin:p您能发布整个JSON吗?JSON似乎无效。我现在从Provider添加了一个完整的JSON复制+粘贴。该JSON字符串的作者一定是个真正的程序员。您的类的问题在于名称不是对象中元素的属性,而是您接收到的数组/列表的第一个元素,其中第一个元素是字符串,其余的元素是字符串列表。我很想为您提供更多帮助,但我不确定如何使用JavaScriptSerializer解析这些内容……我完全同意jgauffin的观点:这确实非常有效,但正如您所说,需要使用Json.Net。我希望不必将此作为一项要求添加,但如果没有人能够解决它,我会将此标记为答案。谢谢这确实非常有效,但正如您所说,需要使用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();