C# 使用自定义数据类型转换JSON.NET类
我正在使用JSON.NET尝试将一种类型的Bar转换为JSONC# 使用自定义数据类型转换JSON.NET类,c#,json,json.net,C#,Json,Json.net,我正在使用JSON.NET尝试将一种类型的Bar转换为JSON public class Foo { String A; String B; Int32 C; DateTime D; } public class Bar { String E; String F; String G; Foo H; } public String ConvertBar(Bar _bar) { String Result = JsonCon
public class Foo {
String A;
String B;
Int32 C;
DateTime D;
}
public class Bar {
String E;
String F;
String G;
Foo H;
}
public String ConvertBar(Bar _bar) {
String Result = JsonConvert.SerializeObject<Bar>(_bar);
return Result;
}
我用它把一个条转换成JSON
public class Foo {
String A;
String B;
Int32 C;
DateTime D;
}
public class Bar {
String E;
String F;
String G;
Foo H;
}
public String ConvertBar(Bar _bar) {
String Result = JsonConvert.SerializeObject<Bar>(_bar);
return Result;
}
无论我做什么,
ConvertBar()
的输出总是空的。那么,在保留Foo
的值的同时,如何将Bar转换为JSON呢?我听说您必须创建一个转换器,但我在这方面没有经验。您可以将字段转换为属性,也可以将字段装饰为[JsonProperty]
public class Foo
{
[JsonProperty]
String A;
[JsonProperty]
String B;
[JsonProperty]
Int32 C;
[JsonProperty]
DateTime D;
}
public class Bar
{
public Bar()
{
H = new Foo();
}
[JsonProperty]
String G;
[JsonProperty]
Foo H;
public String E { get; set; }
public String F { get; set; }
}
使用ConvertBar函数后,我得到以下输出
{"G":null,"H":{"A":null,"B":null,"C":0,"D":"0001-01-01T00:00:00"},"E":null,"F":null}
您应该公开您的属性,并且在两个类中都有一个无参数构造函数,这两个类都不是真正完整的类。它们只是我代码中实际类所包含内容的基本部分。我已经有了公共的属性,并且我已经有了合适的构造函数。我真的很难转换它。现在我看到,在序列化bar对象的任何地方,都是序列化
MessageJSON
propertyhoops。我忘了把它删掉。这是我实际代码的一个片段。我只是复制了它,以便更快。现在修好了。