使用ServiceStack.Text:确定JSON是Array,Object还是String?

时间:2016-10-08 14:06:31

标签: c# json servicestack json-deserialization servicestack-text

使用JSON.net我可以按照link

中的回答执行此操作
string content = File.ReadAllText(path);
var token = JToken.Parse(content);

if (token is JArray)
{
    IEnumerable<Phone> phones = token.ToObject<List<Phone>>();
}
else if (token is JObject)
{
    Phone phone = token.ToObject<Phone>();
}

但是有没有办法在ServiceStack.Text库中类似地做到这一点?

1 个答案:

答案 0 :(得分:3)

你可以这样做:

string content = File.ReadAllText(path);

if (JsonUtils.IsJsArray(content))
{
    IEnumerable<Phone> phones = JsonSerializer.DeserializeFromString<List<Phone>>(json);
}
else if (JsonUtils.IsJsObject(content))
{
    Phone phone = JsonSerializer.DeserializeFromString<Phone>(json);
}