我正在使用返回 Json 数组的服务。(本质上它是一个 Web 请求,输出是一个 json 数组的文本。)有没有一种方法可以让我得到结果,并找到我需要的东西而不用自己的类来映射它?
IE
[TestMethod]
public void Successfully_Parse_Json_Items_From_URL()
{
var content = GetHttpContent(new Uri("", "application/json"); //returns HttpContent
string json = content.ReadAsAsync<string>().Result; //Not sure what to do here. id want this maybe to be an array of keyvalue pairs or something?
//...code
}
如果我的数组是:
[{item1: "value", item2: "value"}]
我只会对第 2 项感兴趣。我不在乎还有什么其他项目。
编辑
所以我发现我正在寻找的是一种从以下位置提取“item2”的方法:
[{item1: "value", fields: { item2: "value2"}}]
我试着做:
JArray jsonArray = content.ReadAsAsync<JArray>().Result;
foreach(JObject obj in jsonArray){
JArray jArray = (JArray)obj.SelectToken("fields"); //This throws an error about unable to case JObject to JArray.
}
更新 我设法让这个工作。
foreach(var obj in jsonArray){
string item2 = (string)obj["fields"].SelectToken("item2");
}