[英]Deserializing custom JSON in C#
我试图将一些自定义 JSON 反序列化为字典,但我很难弄清楚如何处理它。 我在拥有 Model 类之前就已经完成了,但是在这种情况下,我需要以特定的方式来完成。
这是 Json 的样子:
{
Values:
{
"Value1":"XXX",
"value2" :
{
"SubValue1":"YX",
"SubValue2":"AB"
}
}
}
这里的目标是创建一个 Dictionary<string,string> 并填充它,以便:
Key Value
Value1 XXX
Value2 {
"SubValue1":"YX",
"SubValue2":"AB"
}
有没有一种快速的方法可以像那样去消毒? 有关如何轻松完成此操作的任何提示或提示?
试试这个,我把你的 json 转换成 Dictionary<string,string>
var json = "{\"Values\":{\"Value1\":\"XXX\",\"value2\":{\"SubValue1\":\"YX\",\"SubValue2\":\"AB\"}}}";
var jsonDeserialized = JsonConvert.DeserializeObject<Root>(json);
Dictionary<string,string> dict = jsonDeserialized.Values.ToDictionary(i => i.Key, j => j.Value.ToString());
dict["value2"] = dict["value2"].Replace("\n", "").Replace("\r", "");
输出
{
"Value1": "XXX",
"value2": "{\"SubValue1\":\"YX\",\"SubValue2\":\"AB\"}"
}
如何使用
string value1 = dict["Value1"];
Value value2 = JsonConvert.DeserializeObject<Value>(dict["value2"]);
Values values = new Values { Value1=value1, Value2=value2 };
值1
XXX
值2
{
"SubValue1":"YX",
"SubValue2":"AB"
}
班级
public class Values
{
public string Value1 {get; set;}
public Value Value2 {get; set;}
}
public class Value
{
public string SubValue1 { get; set; }
public string SubValue2 { get; set; }
}
public class Root
{
public Dictionary<string, Object> Values { get; set; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.