Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从httprequest读取Json结果_C#_Asp.net_Json_Json.net - Fatal编程技术网

C# 如何从httprequest读取Json结果

C# 如何从httprequest读取Json结果,c#,asp.net,json,json.net,C#,Asp.net,Json,Json.net,我向Zoho support endpoint发出get请求,该调用的结果可以是两种不同的结构。要么是错误的结果。这应该如下所示(如果搜索结果为无) 或者如果搜索结果有一个或多个要返回的对象。它看起来像: { "response": { "result": { "Accounts": { "row": { "no": "1", "fl": [ { "val": "ACCOUNTID", "content

我向Zoho support endpoint发出get请求,该调用的结果可以是两种不同的结构。要么是错误的结果。这应该如下所示(如果搜索结果为无)

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

{
 "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"
}
}
对我来说,解析结果并执行以下操作的最佳方法是什么 :

  • 错误:如果是这样,请运行方法A
  • 如果只有一条记录返回,则运行方法B
  • 如果有多条记录,则运行方法C

  • 我不太确定哪种方法是解析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);
    
    var o=newJavaScriptSerializer()。反序列化(json);
    
    您可以创建两个C类型:一个用于结果,一个用于错误。首先尝试反序列化结果。如果reult为NULL,则尝试反序列化为错误类型。我不确定我对你的理解是否正确。@kat1330:你对我的理解是正确的,这也正是我的想法。但是没有比创建多个classesthank更好的方法了。那有帮助
    var o = new JavaScriptSerializer().Deserialize<RootObject>(json);