这个原因是后端给的json的编码有问题
老方法
保存到本地在读取。
IEnumerator loadjson()
{
WWW www = new WWW ("http://www.wotimadeyebuzhidudizhishisha.com");
yield return www;
File.WriteAllText(Application.dataPath+"/json.txt",www.text);//保存本地
StreamReader sr=File.OpenText(Application.dataPath+"/json.txt");//读取
Root josn = LitJson.JsonMapper.ToObject<</span>Root>(sr.ReadLine());//解析
Debug.Log(josn.result.title);
}
本地C#直接改
www的
IEnumerator Starts()
{
WWW www = new WWW("http://www.wotimadeyebuzhidudizhishisha.com");
yield return www;
Debug.Log(www.text);
LitJson.JsonData data = LitJson.JsonMapper.ToObject(System.Text.Encoding.UTF8.GetString(www.bytes, 3, www.bytes.Length - 3));
Debug.Log(data.ToJson());
Debug.Log(data["data"][0].ToJson());
}
UnityWebRequest的
IEnumerator GetData()
{
UnityWebRequest request = UnityWebRequest.Get("http://www.wotimadeyebuzhidudizhishisha.com");
yield return request.SendWebRequest();
if (request.isNetworkError || request.isHttpError)
{
Debug.Log(request.error);
}
else
{
Debug.Log(request.downloadHandler.text);
JsonData objs = JsonMapper.ToObject(System.Text.Encoding.UTF8.GetString(request.downloadHandler.data, 3, request.downloadHandler.data.Length - 3));
Debug.Log(objs.ToJson());
}
}
解决Unity中Json解析异常的有效方法
这篇博客探讨了在Unity中遇到JsonException: Invalid character问题的解决方案。作者比较了三种不同的方法:本地保存并读取JSON、使用旧版C#直接修改以及通过UnityWebRequest处理。每种方法都涉及对从后端获取的JSON数据进行处理,以消除编码错误。通过本地C#直接修改和UnityWebRequest的方法成功避免了异常,展示了如何正确解析和使用JSON数据。
2225

被折叠的 条评论
为什么被折叠?



