向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"
}
}
解析结果的最佳方式是什么,并执行以下操作:
- 一个错误:如果是,运行方法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);