C#初始化类并为Newtonsoft.Json赋值

C#初始化类并为Newtonsoft.Json赋值,c#,json.net,C#,Json.net,基于本讨论()中的这段代码,我将如何初始化JNotification并将值分配给包含JPayload、JCustomData和JFilter的JNotification public class JNotification { public string status { get; set; } public JPayload payload = new JPayload(); public JFilter filter = new JFilter(); } publi

基于本讨论()中的这段代码,我将如何初始化JNotification并将值分配给包含JPayload、JCustomData和JFilter的JNotification

public class JNotification
{
    public string status { get; set; }
    public JPayload payload = new JPayload();
    public JFilter filter = new JFilter();
}

public class JPayload
{
    public string title { get; set; }
    public string message { get; set; }
    public JCustomData customData = new JCustomData();
}

public class JCustomData
{
    public string addType { get; set; }
    public string addTitle { get; set; }
    public string addMessage { get; set; }
    public int addAppraiserId { get; set; }
    public int addAppraisalId { get; set; }
    public int addAppraisalCommentId { get; set; }
    public int addAppraisalStatusHistoryId { get; set; }
}

public class JFilter
{
    public int AppraiserId { get; set; }
}

我非常确定json反序列化将调用no-arg公共构造函数。如果您在JNotification的构造函数中构造这些对象,它们应该被初始化。

我很确定json反序列化将调用no-arg公共构造函数。如果在JNotification的构造函数中构造这些对象,则应初始化它们。

要创建对象图,请序列化为json并反序列化,请执行以下操作:

var data = new JNotification() {
    status = "New",
    payload = new JPayload() {
        title = "SomeTitle",
        message = "msg",
        customData = new JCustomData() { ... }
    },
    filter = new JFilter() {
        AppraiserId = 1
    }
}
string json = JsonConvert.SerializeObject(data);
JNotification dataAgain = JsonConvert.DeserializeObject<JNotification>(json);
var data=newjnotification(){
status=“New”,
有效负载=新的JPayload(){
title=“SomeTitle”,
message=“msg”,
customData=新的JCustomData(){…}
},
filter=newjfilter(){
评估ID=1
}
}
字符串json=JsonConvert.SerializeObject(数据);
JNotificationDataReach=JsonConvert.DeserializeObject(json);
使用
Newtonsoft.Json
NuGet包

请注意,如果要使用默认命名约定C#,可以将序列化程序设置为每个属性的第一个字母小写


还有一些属性用于配置输出(如果要跳过属性,请使用枚举字符串等)。

要创建对象图,序列化为json并反序列化,请执行以下操作:

var data = new JNotification() {
    status = "New",
    payload = new JPayload() {
        title = "SomeTitle",
        message = "msg",
        customData = new JCustomData() { ... }
    },
    filter = new JFilter() {
        AppraiserId = 1
    }
}
string json = JsonConvert.SerializeObject(data);
JNotification dataAgain = JsonConvert.DeserializeObject<JNotification>(json);
var data=newjnotification(){
status=“New”,
有效负载=新的JPayload(){
title=“SomeTitle”,
message=“msg”,
customData=新的JCustomData(){…}
},
filter=newjfilter(){
评估ID=1
}
}
字符串json=JsonConvert.SerializeObject(数据);
JNotificationDataReach=JsonConvert.DeserializeObject(json);
使用
Newtonsoft.Json
NuGet包

请注意,如果要使用默认命名约定C#,可以将序列化程序设置为每个属性的第一个字母小写


还有一些属性可用于配置输出(如果要跳过属性,请将字符串用于枚举等)

Troels,这正是我想要的。非常感谢。特罗尔斯,正是我要找的。非常感谢。