我将如何反序列化这样的数组?

How would I deserialize an array like this?

我似乎不太明白如何在 C# 中将这个特定数组(从字符串!)反序列化为 class

  [
    [
      "PrimaryContact", 
      "=", 
      "Amy R"
    ], 
    "and", 
    [
      "SecondaryContact", 
      "=", 
      "Steven G"
    ],
    "and",
    [
      "ThirdContact",
      "=",
      "Rachel S"
    ]
  ]

特别是中间的部分让我感到困惑,在这种情况下是 "and"。它并不总是只有三个对象,可能有无限数量的对象,每个对象之间有一个 "and"。

您可以将其反序列化为对象列表:

List<object> items = new JavaScriptSerializer().Deserialize<List<object>>(json);

现在每个其他对象都是 Object[](包含 String 的对象),String.

之间的对象

使用Json.NET,将所有内容解析为JArray,然后过滤掉偶数索引处的标记,然后将每个标记转换为List<string>

您最终会得到 List<string> 的集合,其中每个列表包含 3 个元素,例如 "PrimaryContact""=""Amy R"

var array = JArray.Parse(json);

IEnumerable<List<string>> result = array.Where((token, index) => index%2 == 0)
                                        .Select(token => token.ToObject<List<string>>());

使用您的输入对我有用