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 

  • 相关阅读:
    Junit。。。
    TCP
    InetAddress
    URL
    【转】Hello SDL
    批量移动文件
    在阿里云Ubuntu 14.04.5 LTS下安装nethogs0.8.5
    十二银元分三次找一假
    SQL解析
    POI
  • 原文地址:https://www.cnblogs.com/zhuhongjongy/p/4974473.html
Copyright © 2011-2022 走看看