标签:
在unity中传递数据是,Json使用时非常广泛的。
在学习使用Json中遇到了一个小问题,但是这个问题却不容易被发现,所以我把这个问题列出来希望帮助其他初学者。
问题描述:
JsonTypeCoercionException: Only objects with default constructors can be deserialized. (People)
JsonFx.Json.TypeCoercionUtility.InstantiateObject (System.Type objectType, System.Collections.Generic.Dictionary`2& memberMap)
JsonFx.Json.JsonReader.ReadObject (System.Type objectType)
JsonFx.Json.JsonReader.Read (System.Type expectedType, Boolean typeIsHint)
JsonFx.Json.JsonReader.Deserialize (Int32 start, System.Type type)
JsonFx.Json.JsonReader.Deserialize (System.String value, Int32 start, System.Type type)
JsonFx.Json.JsonReader.Deserialize[People] (System.String value)
JsonTest.Start () (at Assets/Scripts/JsonTest.cs:15)
当我使用如下结构的时候,就会报出上面的错误。大意就是在定义People类是没有按照标准去定义。
于是把代码改成后面的:
改成这样后,在json解析时就能够很好的解析出来。
这里两个People应该是使用到了多态的概念,在Json解析时,也是同样按照这种格式来定义的,所以在定义需要转换成Json的时候,要注意类的结构。
THISSKY出品,原文链接:http://www.cnblogs.com/zhuhongjongy/p/4974473.html
标签:
原文地址:http://www.cnblogs.com/zhuhongjongy/p/4974473.html