如何在序列化期间忽略对象(但稍后再使用)

时间:2018-06-19 18:07:17

标签: c# json serialization

我正在尝试习惯于对象的序列化,并且在使用Debug.Log时注意到了一些东西。

首先,我创建了以下内容:

//Creating a new Question object
Question question1 = new Question
{
    studentPin = pinNumber.text
};
ServerRequest request = new ServerRequest
{
    operation = Constants.PIN_OPERATION,
    //set the values entered for the pin entered
    question = question1,    
};

string myJson = JsonUtility.ToJson(request);

我的请求类如下:

[System.Serializable]
public class ServerRequest
{
    public string operation;
    public Question question;
    public Individual individual;
    public Team team;
    public TeamMember teamMember;    
}

我期望这样的JSON数组:

{
    "operation": "pin",
    "question": {
        "studentPin": "123456"
    }
}

相反,我有这个:

{
    "operation": "pin",
    "question": {
        "studentPin": "123456",
        "user_unique_id": ""
    },
    "individual": {
        "fullName": "",
        "studentNumber": "",
        "lecturerID": ""
    },
    "team": {
        "lecturerID": ""
    },
    "teamMember": {
        "fullName": "",
        "studentNumber": "",
        "lecturerID": ""
    }
}

我可以看到由于某种原因,它不仅仅是使用传递给Request对象的值,还保留了对Request类中所有对象的引用。

我读到有关使用

//Some code omitted
[XmlIgnore]

但是我不确定这是否是我所需要的,或者我面临的问题是完全不同的问题。当我尝试使用提到的属性时,它对我的​​JSON没有影响,因此不确定是否使用错误。

如何忽略不向其传递值的对象?

稍后,我想使用当前不包含任何值的对象,因此为什么它们属于同一类。

感谢您的帮助。

0 个答案:

没有答案