在c#中解析JSON(.NET2.0 / JSON.NET35)

时间:2013-12-04 11:49:18

标签: c# json rest json.net

我必须自定义一个使用.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”   },“成功”:真实}

1 个答案:

答案 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();