【发布时间】:2019-03-11 00:58:23
【问题描述】:
我正在尝试反序列化具有深度嵌套值的 JSON 对象,但所有尝试都为空。下面是一个失败的测试,但我希望它通过。有人可以解释我缺少什么吗?
using System.Collections.Generic;
using NUnit.Framework;
using UnityEngine;
using UnityEngine.TestTools;
[System.Serializable]
class TestJson
{
public string rootStr;
public Foo foo;
}
[System.Serializable]
class Foo
{
public string bar;
}
namespace Tests
{
public class Serialization
{
[Test]
public void SerializationSimplePasses()
{
string json = "{\"foo\":{\"bar\":\"baz\"},\"rootStr\":\"rootStrValue\"}";
var deserialized = JsonUtility.FromJson<TestJson>(json);
Assert.AreEqual(deserialized.rootStr, "rootStrValue"); // this works
Assert.AreEqual(deserialized.foo.bar, "baz"); // this fails
var reserialized = JsonUtility.ToJson(deserialized);
Assert.AreEqual(reserialized, json); // this fails
}
}
}
【问题讨论】: