1

一天以来,我一直在尝试使用 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; }
}
4

1 回答 1

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();
于 2013-05-31T12:04:22.623 回答