在Unity中使用JsonUtility将带有自定义子对象的类打印到JSON输出中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Unity中使用JsonUtility将带有自定义子对象的类打印到JSON输出中相关的知识,希望对你有一定的参考价值。
我一直在尝试将JSON对象及其内部的另一个对象以及本机c#变量打印到嵌套的json对象中。如果没有自定义对象,则该对象可以很好地打印,但是,一旦添加了自定义对象,则仅打印内部对象的InstanceID。这是代码,我试图找到一种解决方案,但是我没有看到类似的问题。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Character : MonoBehaviour
{
public string name, char_class, race, alignment;
public int hp, xp, armor, speed;
public List<string> itemList = new List<string>();
public Abilities abilities;
public string SaveToString()
{
return JsonUtility.ToJson(this);
}
}
public class Abilities : MonoBehaviour
{
public int strength, dexterity, intelligence, constitution, wisdom, charisma;
}
输出为:
{"name":"test","char_class":"Barbarian","race":"Dragonborn","alignment":"Lawful Good","hp":0,"xp":12,"armor":1,"speed":123,"itemList":[],"abilities":{"instanceID":0}}
但是我试图让它在其他json打印输出中具有abilities对象的详细JSON JSON选项卡。
尝试将[Serializable]
添加到您的Abilities
类中。您的Character
类可能暗含序列化,因为它是调用类。
此处有更多信息:https://docs.unity3d.com/Manual/JSONSerialization.html
或者,您可能会实现一些更广泛使用的功能,例如Json.Net(在C#中,不特别对Unity3D进行注释)。不过,目前还不确定在Unity中实现第三方依赖有多么容易。
以上是关于在Unity中使用JsonUtility将带有自定义子对象的类打印到JSON输出中的主要内容,如果未能解决你的问题,请参考以下文章
使用 Unity JsonUtility.FromJson 从具有嵌套值的 json 创建对象
无法在 Unity 5.4 中使用 JsonUtility 反序列化 JSON。子集合始终为空
Unity中使用JsonUtility.FromJson反序列化JSON
c#/unity json 错误,并希望使用 Unity JsonUtility 或 litJson 在 JsonObject 中检索 jsonObject