C# 如何从httprequest读取Json结果
我向Zoho support endpoint发出get请求,该调用的结果可以是两种不同的结构。要么是错误的结果。这应该如下所示(如果搜索结果为无) 或者如果搜索结果有一个或多个要返回的对象。它看起来像: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
{
"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"
}
}
对我来说,解析结果并执行以下操作的最佳方法是什么
:
我不太确定哪种方法是解析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);