确定Json结果是对象还是数组

我正在使用.net Web

API来获取json并将其返回给前端以获取角度。json可以是对象或数组。我的代码当前仅适用于数组,而不适用于对象。我需要找到一种方法来尝试解析或确定内容是否是对象或数组。

这是我的代码

    public HttpResponseMessage Get(string id)

{

string singleFilePath = String.Format("{0}/../Data/phones/{1}.json", AssemblyDirectory, id);

List<Phone> phones = new List<Phone>();

Phone phone = new Phone();

JsonSerializer serailizer = new JsonSerializer();

using (StreamReader json = File.OpenText(singleFilePath))

{

using (JsonTextReader reader = new JsonTextReader(json))

{

//if array do this

phones = serailizer.Deserialize<List<Phone>>(reader);

//if object do this

phone = serailizer.Deserialize<Phone>(reader);

}

}

HttpResponseMessage response = Request.CreateResponse<List<Phone>>(HttpStatusCode.OK, phones);

return response;

}

以上可能不是最好的方法。它就是我现在所在的位置。

回答:

使用Json.NET,您可以这样做:

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>();

}

以上是 确定Json结果是对象还是数组 的全部内容, 来源链接: utcz.com/qa/417216.html

回到顶部