zoukankan      html  css  js  c++  java
  • 关于litJson的System.InvalidCastException

    最近在做一个Unity3D的项目,用到了litJson库, 它比JavaScript里的JSON解析更加严格, 有时候解析数据的时候会出现类型不对.

    比如说 {"data":12} 中的12没有用引号包起来, 就不能把它当作字符串来读取了, 只能当作int来读取.

    另外如果碰到了 {"data":12.00}, 不能想当然地当作float来读取, 而是要当作double来读取的.

    对于从来没有用过litJson的人来说有个最保险的方法, 如果碰到了解析报错说 "System.InvalidCastException"  指定的类型转换无效, 可以把字段的类型输出来,然后再解析.

    代码如下:

    string data = "{'val':1.00}";
    JsonData jd = JsonMapper.ToObject(data);
    JsonData val = jd["va"];
    Debug.log(val.GetJsonType());//输出发现是double类型
    float f = (float)(double)val;
  • 相关阅读:
    c++ 01
    unix c 11
    unix c 10
    unix c 09
    unix c 08
    unix c 07
    unix c 06
    unix c 05
    unix c 04
    Petrozavodsk Summer Training Camp 2017
  • 原文地址:https://www.cnblogs.com/canono/p/4136833.html
Copyright © 2011-2022 走看看