unity 3D之调用JsonFx遇到的问题及解决

在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的时候,要注意类的结构。

然而在Unity 中不止有这一种结果的类可以被json序列化。在unity5.3版本中,unity已经将json集成到unity中。

我们在unity编程中有时候并不想去考虑json序列化的类的内容,只是想单纯的做一个数据类,那么我们不必要按照上面所示的那种结构来编辑类。

[SerializeField]
public class I{
    string name;
    string sex;
}

这样,在创建这个类的实例后,用json的序列化,将这个类转化成json字符串。

-----------------------------------------------------2016年12月18日更新--------------------------------------------------------------------------

现在这个问题已经被插件解决并不存在了。

-------------------------------------------------------------------------------------------------------------------------------------------------------

THISSKY出品,原文链接:http://www.cnblogs.com/zhuhongjongy/p/4974473.html 

 

转载于:https://www.cnblogs.com/zhuhongjongy/p/4974473.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值