【发布时间】:2018-08-09 07:48:20
【问题描述】:
我的 JSON 看起来像:
{
"name": "foo",
"settings": {
"setting1": true,
"setting2": 1
}
}
我知道如何使用 json2csharp.com 创建 C# 类来反序列化它。它们看起来像:
public class Settings
{
public bool settings1 { get; set; }
public int settings2 { get; set; }
}
public class RootObject
{
public string name { get; set; }
public Settings settings { get; set; }
}
但我想要的只是将其反序列化为
public class RootObject
{
public string name { get; set; }
public string settings { get; set; }
}
即,所有“设置” JSON 只需保存为字符串——该 JSON 的结构并不一致。怎么可能呢?谢谢!
【问题讨论】:
-
而不是去一个字符串(除非这真的是你想要的),你可能会得到它进入某种字典。我在这里回答了类似的问题:stackoverflow.com/questions/23505096/…
-
@PeteGarafano。我确实需要它作为字符串,你我认为你有正确的想法。我只需要这样做:
codevar rawObj = JsonConvert.DeserializeObject(json); var uniq = rawObj.name; var settings = rawObj.settings; code谢谢你的想法 -
@John 看到我的回答,我不认为在这里使用动态是“最干净”的解决方案。
-
@John 我在那个答案中用
dynamic做到了,但没有什么能阻止你把它变成Dictionary<string, string>或类似的东西。如果它有帮助,我会称之为胜利。祝你好运!