0

我有一个 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). 谢谢你的帮助!

4

1 回答 1

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();
于 2013-07-16T23:34:50.317 回答