我必须自定义一个使用.net 2.0的软件。 我的任务是集成JSON REST API。出于这些目的,我试图使用json.net,它适用于调用。 试图解析结果我提出了这个:
using (StreamReader responseReader = new StreamReader(webStream))
{
try
{
JsonTextReader jsonreader = new JsonTextReader(responseReader);
while (jsonreader.Read())
{
if (jsonreader.Path == "data.key" && jsonreader.TokenType == JsonToken.String) return jsonreader.Value.ToString();
}
throw new Exception("no token found in answer");
}
catch (Exception)
{
// error handling
throw;
}
}
这适用于较新版本的Json.NET。不幸的是,JsonTextReader.Path在此版本(3.5)中不可用,并且没有机会升级。 如何解析结果以接收属性data-> key?
下的给定标记响应看起来像这样
{“status”:{ “代码”:0, “httpStatus”:200, “text”:“申请成功提交”, “成功”:真实},“数据”:{ “关键”:“dIwbU9ZjQDH6P95aMqs%2Bh%AKLA22%2ByeY2R7PC6IknkWC%2BlrmcN%2Blm5F3WNBa027gTm%0D%0A2zp5NGC1X2NON72A7N%2BZjB2fxJizUg0paiVdWlv4K1ZSKLlIGprTVaMHqA1%0D%0AcfCHnV6E%0D%0A” },“成功”:真实}
答案 0 :(得分:0)
Json.Net v3.5现在已经很老了,但是这样的事情应该有用。
替换它:
while (jsonreader.Read())
{
if (jsonreader.Path == "data.key" && jsonreader.TokenType == JsonToken.String)
return jsonreader.Value.ToString();
}
用这个:
JObject obj = JObject.Parse(json);
return obj["data"]["key"].ToString();