Unity 将 class 的一部分序列化为 json
Unity serialize some part of class to json
我想将 class 的一部分发送到服务器。
发送信息
[Serializable]
public class SendingInfos
{
public string tempID;
public string playerLettersInHand;
public string playerLettersMiddle;
public int playerBet;
public string playerLetterSent;
}
当前 temID 和 playerBet 具有价值,而其余的 null.In 这种情况下,如果我使用
string jsondata = JsonUtility.ToJson(sendingInfos);
这个并发送。我是发送 class 中不为空的部分还是全部?
还有其他选择可以发送一部分吗?喜欢
string jsondata = JsonUtility.ToJson({ sendingInfos.tempID, sendingInfos.playerBet });
编辑:我想将 class 的一部分发送到服务器的原因是,尽可能保持服务器网络流量低。另外,我可能会通过将 class 分成 2 class.however 来做到这一点,如果有更简单的方法,我想这样做。
这种情况下的正常操作只是序列化整个对象。这样你就可以确保它可以在没有额外设置的情况下反序列化。 NULL 应该自动处理 AFAIK,所以当再次序列化时你应该得到相同的对象(所有值都设置为 NULL 或实际值)
您通常不会只发送一个对象的一半,因为您在发送者和接收者之间就整个对象维护合同,而不是一半或三分之一。这似乎有点奇怪,我不明白你为什么想要这个。
我想将 class 的一部分发送到服务器。
发送信息
[Serializable]
public class SendingInfos
{
public string tempID;
public string playerLettersInHand;
public string playerLettersMiddle;
public int playerBet;
public string playerLetterSent;
}
当前 temID 和 playerBet 具有价值,而其余的 null.In 这种情况下,如果我使用
string jsondata = JsonUtility.ToJson(sendingInfos);
这个并发送。我是发送 class 中不为空的部分还是全部? 还有其他选择可以发送一部分吗?喜欢
string jsondata = JsonUtility.ToJson({ sendingInfos.tempID, sendingInfos.playerBet });
编辑:我想将 class 的一部分发送到服务器的原因是,尽可能保持服务器网络流量低。另外,我可能会通过将 class 分成 2 class.however 来做到这一点,如果有更简单的方法,我想这样做。
这种情况下的正常操作只是序列化整个对象。这样你就可以确保它可以在没有额外设置的情况下反序列化。 NULL 应该自动处理 AFAIK,所以当再次序列化时你应该得到相同的对象(所有值都设置为 NULL 或实际值)
您通常不会只发送一个对象的一半,因为您在发送者和接收者之间就整个对象维护合同,而不是一半或三分之一。这似乎有点奇怪,我不明白你为什么想要这个。