zoukankan      html  css  js  c++  java
  • 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 

  • 相关阅读:
    「日常训练」Single-use Stones (CFR476D2D)
    「日常训练」Greedy Arkady (CFR476D2C)
    「Haskell 学习」二 类型和函数(上)
    「学习记录」《数值分析》第二章计算实习题(Python语言)
    「日常训练」Alena And The Heater (CFR466D2D)
    Dubbo 消费者
    Dubbo 暴露服务
    Rpc
    git fail to push some refs....
    Spring Cloud (6)config 客户端配置 与GitHub通信
  • 原文地址:https://www.cnblogs.com/zhuhongjongy/p/4974473.html
Copyright © 2011-2022 走看看