我有一个json字符串,我只想抓取数据节点中的数组。我是否使用RegEx修剪或提取json字符串的那部分的最佳方法是什么?
以下是一个示例:
{
"Data":[
{
"Title":"Test Item 1",
"Icon":"pdf",
"PublicationDate":"2013-05-08T18:23:18.037Z"
},
{
"Title":"Test Item 2",
"Icon":"pdf",
"PublicationDate":"2013-05-08T18:23:38.177Z"
}
],
"Count":67
}
以下是我想要的结果:
[
{
"Title":"Test Item 1",
"Icon":"pdf",
"PublicationDate":"2013-05-08T18:23:18.037Z"
},
{
"Title":"Test Item 2",
"Icon":"pdf",
"PublicationDate":"2013-05-08T18:23:38.177Z"
}
]
我该如何正确地做到这一点?有时json字符串已经按照我的需要而只有数据节点中的数组,所以逻辑必须足够智能,如果它已经以这种格式出现,就会忽略它。原因是我将两个案件都送到JsonConvert.DeserializeObject<List<dynamic>>(json)
。谢谢你的帮助!
答案 0 :(得分:0)
阅读完您的评论后,似乎这就是您所需要的:
var jToken=JToken.Parse(data);
JArray arr;
switch(jToken.Type)
{
case JTokenType.Array:
arr=(JArray)jToken;
break;
case JTokenType.Object:
arr=(JArray)((JObject)jToken)["Data"];
break;
default:
throw new Exception();
}
var output=arr.ToString();