如何从httprequest中读取Json结果

时间:2016-10-27 04:26:42

标签: c# asp.net json json.net

我向Zoho支持端点发出get请求,此调用的结果可能有两种不同的结构。有错误的结果。它应该看起来像下面(如果搜索结果没有)。

{
 "response": {
    "uri": "/api/json/accounts/getrecordsbysearch",
    "error": {
       "code": 4832,
       "message": "There is no data to show"
    }
  }
}

或者,如果搜索结果中有一个或多个要返回的对象。它看起来像是:

{
 "response": {
"result": {
  "Accounts": {
    "row": {
      "no": "1",
      "fl": [
        {
          "val": "ACCOUNTID",
          "content": "8046200"
        },
        {
          "val": "URI",
          "content": "/support/"
        },
        {
          "val": "IsCommented",
          "content": "false"
        },
        {
          "val": "Username",
          "content": "Outdoo"
        }
      ]
    }
  }
},
"uri": "/api/json/accounts/getrecordsbysearch"
}
}

解析结果的最佳方法是什么,并执行以下操作 :

  1. 错误:如果是,请运行方法A
  2. 如果只有一条记录返回,则运行方法B
  3. 如果有多条记录,则运行方法C.
  4. 我不太确定哪种方法是解析json和检查内容的最佳方法

1 个答案:

答案 0 :(得分:1)

如果您创建类似下面的类结构(结构类和下面的类被删除以使此示例更短),json字符串总是被反序列化,然后您可以检查错误类是否有值。 / p>

public class Error
{
    public int code { get; set; }
    public string message { get; set; }
}

public class Response
{
    public Result result { get; set; }
    public string uri { get; set; }
    public Error error { get; set; }
}

public class RootObject
{
    public Response response { get; set; }
}

反序列化:

var o = new JavaScriptSerializer().Deserialize<RootObject>(json);