Unity 加载UTF-8 *.Json文件,调用JsonMapper.ToObject异常

*.Json文件使用UTF-8文件不保存格式的话被LitJson 中的JsonMapper.ToObject 调用报异常:

JsonException: Invalid character '' in input string

LitJson.Lexer.NextToken ()
LitJson.JsonReader.ReadToken ()
LitJson.JsonReader.Read ()
LitJson.JsonMapper.ReadValue (LitJson.WrapperFactory factory, LitJson.JsonReader reader)
LitJson.JsonMapper.ToWrapper (LitJson.WrapperFactory factory, System.String json)

LitJson.JsonMapper.ToObject (System.String json)


有用UTF-8保存文件有4个无用字节i.e.  


using UnityEngine;
using System.Collections;
using LitJson;
using System.Text;
public class GetVersion : MonoBehaviour {

    string CallFun = "";
    string filepath = "";
    private string _tipMessage = "";
    [SerializeField]
    private UISprite _loginBt;
    private Color _color=new Color(1,1,1,0.5f);
    void Start () {
        InitWWWJson("file://"+Application.dataPath + "/StreamingAssets/MusesMobileAppVersion.json", "");
    }

    public void InitWWWJson(string Path, string CallFun)
    {
        this.CallFun = CallFun;
        filepath = Path;
        WWW www = new WWW(filepath);
        StartCoroutine(LinkNetWork(www));
    }
    IEnumerator LinkNetWork(WWW www)
    {
        yield return www;
        if (www.error == null)
        {
            //ReadJson(www.text);直接使用抛异常
            string jsonData = System.Text.Encoding.UTF8.GetString(www.bytes, 3, www.bytes.Length - 3);  // Skip thr first 3 bytes (i.e. the UTF8 BOM)
            ReadJson(jsonData);
        }
        
    }
    private void ReadJson(string versionMessage)
    {
        Debug.Log( versionMessage);
        JsonData _json = JsonMapper.ToObject(versionMessage)["Diet"];
        string version= _json["version"].ToString();
        Debug.Log("版本号" + version);
        Debug.Log("name:" +  _json["name"].ToString());
        if (version != Application.version)
        {
            _tipMessage = _json["msg"].ToString();
            Messenger.Broadcast<string>("MessageBoxError", _tipMessage);
            if (_json["enabled"].ToString() != "true")
            {
                _loginBt.color = _color;
                _loginBt.transform.GetComponent<BoxCollider>().enabled = false;
            }
        }
        
    }
  
}


JSON文件

{
    "Diet": {
        "name": "91小二",
        "version": "1.1.2",
	"enabled":"true",
	"msg":"检测到新版本,请更新",
        "updateTime": "20160628"
    }
}
这个是一个简单的检测版本是否需要更新并提升,把*.json放到服务器上就可以了



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值