从string字符串变量 转换为 JSON 数据的时候出现错误(Unexpected node type.)。
JSON数据为
{"code":1}
...
[System.Serializable]
public class LoginJson
{
public int code = 0;
public int ccc = 0;
}
...
获取单个JSON数据的变量
当JSON数据从字符串转换成JSON数据的时候,只有单个JSON数据,使用这个,是不会出现错误(Unexpected node type.)
...
LoginJson wrapper = JsonUtility.FromJson<LoginJson>(msg);//单个变量
Debug.Log(wrapper.code);//JSONObject读取数据方法
...
获取数组,多个JSON数据的变量
专门读取多个JSON数据的代码,用于 单个JSON数据的变量读取的时候,会出现错误。
...
LoginJson[] jsons = JsonHelper.FromJson<LoginJson>(msg);
Debug.Log(" :"+jsons);
for (int i = 0; i < jsons.Length; i++)
{
Debug.Log("======== data[" + i + "]." + jsons[i]);
}//JSONArray读取数据
...
反之如果JSON数据是 多个数组组成的数据,用单个JSON数据读取的代码,也会报错。
通过参考资料1,得知,一个字符串变量 里面,如果只有一个JSON数据,那么就是JSONObject。使用JSONArray读取数据的方法就会出错。
反之,也一样。
通常这种出现错误的方式 是JAVA和C#通过JSON格式的数据进行交互,产生的错误。
参考资料:
1.
2.
3.

在Unity中,从字符串转换JSON数据时遇到'Unexpected node type.'错误。当字符串包含单个JSON对象时,使用JSONArray会导致错误,而应使用JSONObject。相反,如果数据是JSON数组,使用JSONObject会报错。此问题常见于Java与C#间通过JSON交换数据时。解决方案在于正确识别并使用适合的数据类型来解析JSON字符串。
2228

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



