Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何反序列化特定的JSON字符串_C#_Json_Deserialization - Fatal编程技术网

C# 如何反序列化特定的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

一天来,我一直在尝试使用JavaScriptSerializer类反序列化特定的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; }
}

您的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();