我试图将使用JSON.NET的跟随JSON(我不控制源代码)反序列化为C#类或类失败。我该如何处理错误'领域。它似乎由一个整数和一个字符串组成,但这些子字段没有命名。
{
"status": "error",
"data": "this is a string",
"error": {
"123": "Something went wrong, fix it"
}
}
这与我以前的question类似,但在这种情况下,数据'和'错误'不包含集合。
例如,这不起作用......
public class ApiError
{
int Number;
string Message;
};
public class ApiResponse
{
[JsonProperty(PropertyName = "status")]
public string Status;
[JsonProperty(PropertyName = "data")]
public string Data;
[JsonProperty(PropertyName = "error")]
public ApiError Error;
};
var y = JsonConvert.DeserializeObject<ApiResponse>(SampleJson);
// y.Error.Number and y.Error.Message are both 0/null.
答案 0 :(得分:1)
C#中的字段/属性不能以数字开头。因此,在您的示例中,“error”的对象可以只是一个Dictionary。所有JSON最终都只是键/值对。
[JsonProperty(PropertyName = "error")]
public Dictionary<int, string> Errors;