我将如何反序列化这样的数组?
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>>());
使用您的输入对我有用
我似乎不太明白如何在 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>>());
使用您的输入对我有用