我从 API 收到此响应
{rn "VAL_VER_ZERO_TURN" : {rn "J_ID" : "345",rn "DIS_CODE" : "WV345"rn }rn}
我得到这个字符串作为webClient.DownloadString(uri(的响应 但是当将其转换为 JSON 时,结果为空白。
JsonConvert.PopulateObject(response, rockInfo(;
当我尝试硬编码字符串(而不是webClient.DownloadString(uri((时,它可以工作
response = {"J_ID" : "345",rn "DIS_CODE" : "WV345"rn }";
我在这里理解的是当我向它提供带有前导和尾随换行符的实习 JSON 对象时它的工作。 但是我不知道如何提取该内部JSON对象。
您可以使用JObject.Parse(response)
来访问不同的对象,就像遍历字典一样。
var jobject = JObject.Parse(response);
var abc = jobject["VAL_VER_ZERO_TURN"];
您可以继续向下钻取每个结果。
我建议将Json转换为类(json2csharp(并使用JsonConvert.PopulateObject来读取内部对象。下面是示例代码。
public class VALVERZEROTURN
{
public string J_ID { get; set; }
public string DIS_CODE { get; set; }
}
public class RootObject
{
public VALVERZEROTURN VAL_VER_ZERO_TURN { get; set; }
}
static void Main(string[] args)
{
string response = "{rn "VAL_VER_ZERO_TURN" : {rn "J_ID" : "345",rn "DIS_CODE" : "WV345"rn }rn}";
RootObject rockInfo = new RootObject();
JsonConvert.PopulateObject(response, rockInfo);
Console.WriteLine($"J_ID: {rockInfo.VAL_VER_ZERO_TURN.J_ID}, DIS_CODE: {rockInfo.VAL_VER_ZERO_TURN.DIS_CODE} ");
}