c# - JsonConvert.DeserializeObject 返回空值
问题描述
我进行了搜索,但似乎没有找到任何解决方案...这是我的示例 Json:
{
"WSettings":{
"Message":"\"We are the universe's way of experiencing itself.\"<br/>- Kurzgesagt -",
"universalMessageProcChance":10,
"Hi":{
"altName":"Hi",
"normalState":"hi",
"hState":"hi_h",
"aState":"hi_a",
"background":"bg_owo_r",
"stateLayout":4,
"backgroundLayout":1,
"eventMessage":"Da"
},
"Yu":{
"altName":"Al",
"normalState":"al",
"hState":"al_h",
"aState":"ali_a",
"background":"bg_owo_b",
"stateLayout":4,
"backgroundLayout":1,
"eventMessage":"Da"
}
}
}
这是我的课:
public class WSettings
{
public string Message { get; set; }
public int universalMessageProcChance { get; set; }
[JsonProperty("Hi")]
public StateW Hi { get; set; }
[JsonProperty("Yu")]
public StateW Yu { get; set; }
}
public class StateW
{
public string altName { get; set; }
public string normalState { get; set; }
public string hState { get; set; }
public string aState { get; set; }
public string background { get; set; }
public int stateLayout { get; set; }
public int backgroundLayout { get; set; }
public string eventMessage { get; set; }
}
这要反序列化:
var w = Newtonsoft.Json.JsonConvert.DeserializeObject<WSettings>(File.ReadAllText(@"json.txt"));
它将所有属性返回为空。老实说,我不知道那里出了什么问题,所以请原谅我的无知。任何帮助都可以得到 :)
解决方案
您将需要 WSettings 上的另一个包装类。
尝试这样的事情:
public class WSettingsParent
{
public WSettings WSettings { get; set; }
}
并像这样反序列化:
WSettingsParent myDeserializedClass = JsonConvert.DeserializeObject<WSettingsParent>(File.ReadAllText(@"json.txt")));
这是一个有用的工具,用于检查您是否可以使用它来确保正确设置类的结构:
https
://json2csharp.com/
只需将您的 json 粘贴到左侧,它就会相应地生成类。(您可能需要一些细微的修改,但大图在那里可见)。
推荐阅读
- python - Hitting 500 error on django with debug=False even with ALLOWED_HOSTS=["*"]
- python - Python 3 Django 3.0 正在运行但未侦听或打开端口
- ios - 使用 InsertRows(at: with) 将 UIImage 插入表中
- r - R install_github:错误:无法安装“未知包”
- python - 如何通过创建单独的二进制数组来有效地分割 NumPy 数组
- c - 使用 scanf 获取 c 中动态数组的用户输入
- html - 如何将多个带有图标的元素放在一个 div 中?
- c# - 如何在 asp.net core 中通过 Nlog 将信息记录到一些单独的文件中?
- python - How to eliminate overlapping lines in python?
- flutter - Flutter throwing error for null string even though I used await to wait for other function to send data first