如何反序列化仅包含值的 JSON 数组?

How do I deserialize a JSON array that contains only values?

我从网络函数中得到这个结果。

["767,20150221122715,121053103,14573465,1,7,302",
"767,20150221122756,121053165,14573375,1,0,302",
"767,20150221122840,121053498,14572841,1,12,124"]

通常 Json 有 PropertyName: Value 但这有一个字符串数组,每个字符串都有用逗号分隔的值。我知道每个值位置是什么意思。

我尝试使用 JsonConvert.DeserializeObject 但无法正常工作。

string deserializedProduct = JsonConvert.DeserializeObject<string>(json);
//and
List<string> deserializedProduct = JsonConvert.DeserializeObject<string>(json);

我可以解析字符串进行拆分,但我想知道是否有简单的方法。

为了回答您的问题,根据 http://json.org/,它是一个有效的 JSON 值(字符串数组)。

要根据 this stack overflow question 反序列化它,你应该使用 JsonConvert.DeserializeObject<List<string>>(json); 转换它

DeserializeObject<T>() 方法的通用参数是您希望反序列化器反序列化的类型。您的 json 字符串表示一个字符串数组,因此您应该反序列化为一个字符串集合(通常为 List<string>)。

var values = JsonConvert.DeserializeObject<List<string>>(json);

但是,没有必要指定类型。存在 returns object 的非泛型重载。它将(在这种情况下)return 具有适当值的 JArray 的实例。

object values = JsonConvert.Deserialize(json);

不过,如果可能的话,return 更具体的类型会更好。为了使其更通用,您可以使用 JToken 作为泛型,或者更具体地说,JArray.

var values = JsonConvert.Deserialize<JToken>(json); // good
var values = JsonConvert.Deserialize<JArray>(json); // better in this case