[游戏开发-学习笔记]菜鸟慢慢飞(12)- Unity3D中LitJson 解析遇到的问题

1.数据格式问题

问题:服务器那边设置的HP的类型是float,如果传给客户端的是1000,没有小数点解析的时候LitJson会优先按照int去解析。但是呢,服务器回头还有可能传回的是1000.50这样带小数点的。我们写死解析对应的数据类型,就会报错。

我的解决办法是:

public class LitJsonHelper
{
    /// <summary>
    /// 转换成int,不确定jdata的值是float还是int
    /// </summary>
    /// <returns>The int.</returns>
    /// <param name="jdata">Jdata.</param>
    public static int ToInt(JsonData jdata) 
    {
        if (jdata.GetJsonType()==JsonType.Double)
        {
            return (int)(double)jdata;
        }
        else    if (jdata.GetJsonType()==JsonType.Float)
        {
            return (int)(float)jdata;
        }
        else
        {
            return (int)jdata;
        }
    }

类似的ulong,double也有可能会引起这样的问题,类似的也可以解决。

原文地址:https://www.cnblogs.com/workhai/p/6688884.html