我正在处理从API检索JSON数据的情况。然后我尝试将这些数据映射到相应的JSON对象定义(这是巨大的,所以我不会把它放在这里),这一切都适用于单个顶级项目。但是,在我检索的字符串包含多个顶级JSON项的情况下,我无法解析JSON数据,因为它尚未拆分。
我似乎无法找到一种有效的方法来分割字符串然后解析对象。
我尝试的内容包括以下文章中的项目: Parse Json string in C# https://stackoverflow.com/questions/32273617/parse-json-string-into-liststringhttps://stackoverflow.com/questions/13721686/parse-this-json-string-to-string-array-c-sharp
我使用地图的单个项目到单个对象的代码如下:
public void createTicketObj(string json_string)
{
//take in the json string containing the items & deserialize it.
var item = Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject>(json_string);
//works for a single JSON item, however not for multiple records.
}
如果有人能指出我正确的方向,我将不胜感激! 谢谢。
答案 0 :(得分:2)
如果您有多条记录,则应将其放在List<T>
中。试试这个:
var item = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RootObject>>(json_string);
但是,这不适用于单个项目。为了使其工作,请首先使用以下命令检查JSON是单个还是多个记录:
var token = JToken.Parse(json_string);
if (token is JArray)
{
// Do something
}
else if (token is JObject)
{
// Do something
}
希望它有所帮助!