【发布时间】:2014-07-28 11:46:27
【问题描述】:
我有以下 JSON 字符串:
{
"id": "0",
"version": "1.1",
"result": {
"status": "{\"1\": \"CONTINUOUS\", \"3\": \"NOT_CONFIGURED\", \"2\": \"NOT_CONFIGURED\", \"4\": \"EVENTO\"}"
}
}
我想将此字符串反序列化为 c# 类。首先,我使用了 json2csharp.com,我得到了这些 c# 类来反序列化字符串:
public class Result {
public string status { get; set; }
}
public class RootObject {
public string id { get; set; }
public string version { get; set; }
public Result result { get; set; }
}
此解决方案对我无效,因为 status 不是字符串,它是 Dictionary 对象。这本字典的键和值不固定,可能不同。
我的解决方法:
我在 Result 类中添加了一个方法来获取该字典,但我意识到这种解决方法不是很“漂亮”,我相信有人可以为我提供更好的解决方案。 类与方法:
public class Result {
public string status { get; set; }
public Dictionary < string, string > GetValues() {
return JsonConvert.DeserializeObject < Dictionary < string, string >> (status);
}
}
提前致谢
【问题讨论】:
-
这看起来不像是有效的 JSON——更像是嵌套的 JSON 或类似的东西。你不能像你已经承认的那样一次性反序列化它。您是否能够修复 JSON 字符串,从而无需在 C# 中解决它?
标签: json serialization dictionary