如何从httprequest读取Json结果

本文关键字:Json 结果 读取 httprequest | 更新日期: 2023-09-27 18:15:14

向Zoho支持端点发出get请求,此调用的结果可以是两种不同的结构。要么是错误的结果。如下所示(如果搜索结果为none):

{
 "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。

我不太确定哪将是最好的方法来解析json和检查内容

如何从httprequest读取Json结果

如果你创建了一个像下面这样的类结构(结果类和该结构下的类被删除以使这个例子更短),json字符串总是被反序列化,然后你可以检查错误类是否有值。

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);