我有此JSON结构:如何管理同一类中的两种类型的json?
public class Trace
{
public TraceValue trace;
}
public class TraceValue
{
public Details details;
public Context context;
}
public class Details
{
public String date;
public String type;
public String message;
}
public class Context
{
public List<List<IdItem>> context;
}
public class IdItem
{
public String ID;
}
反序列化的一个示例::
var response = "json above";
var obj = JsonConvert.DeserializeObject<List<Trace>>(response);
现在的问题是,有时
[{"trace":{"details":{"date":"[28-02-2016 11:04:26.856573]","type":"[info]","message":"[system done.]"},"context":{"context":[[{"ID":"john dillinger"}]]}}},{"trace":{"details":{"date":"[28-02-2016 11:04:26.856728]","type":"[info]","message":"[trace done.]"},"context":{"context":[[{"ID":"john dillinger"}]]}}}]
我可以用这个类正确地反序列化json以此结构返回:
{
"success": false,
"message": "No content."
}
我的代码出错了,因为结构不同。我试图读取标题,但返回为200'导致没有错误happean。那么如何才能识别不同的结构并避免json异常呢?这是管理不同的JSON结构类:
public class RootObject
{
public bool success { get; set; }
public string message { get; set; }
}
我能在异常做到这一点,但是这是不是一个好的做法,还有另一种方式?
是否标准的消息包括:'“成功”:TRUE'? – LegionMammal978
该消息仅在第二种情况下返回,如果有内容我得到完整的堆栈“跟踪”,我也会得到'success:false'和相关的'消息' – Dillinger
在这种情况下,没有理由在那里甚至是'成功'参数,如果它总是存在'假'的话。你有任何控制输入? – LegionMammal978