JAVA服务器与Unity客户端通过JSON进行数据的通讯,出现的错误。
出现这个错误,通常是因为 JAVA的JSON和Unity的JsonUtility识别的JSON是不一样的。具体参照参考资料1和2。
JSON must represent an object type.
下面的这个是JSON数组,错误的
[
{"world":0,"name":"","equips":[],"characterid":1},
{"world":0,"name":"543453","equips":["01040002","01060002","01072005","01302000"],"characterid":8}
]
下面这种是JSON对象,这个JSON对象里面包含了数组,正确的
{
"role":[{"world":0,"name":"","equips":[],"characterid":1},
{"world":0,"name":"543453","equips":["01040002","01060002","01072005","01302000"]
}
Unity的JsonUtility通常只能识别JSON对象
在Unity中的代码如下所示:
...
using UnityEngine;//JsonUtility
...
Start()
{
data1 data1 = JsonUtility.FromJson<data1>(msg);//获得单个JSON对象
if (data1 == null)
{
Debug.Log("============= data1

在JAVA服务器与Unity客户端使用JSON进行数据通讯时,遇到"JSON must represent an object type"错误。原因是Unity的JsonUtility仅能识别JSON对象而非数组。解决方法包括确保JSON为对象类型,其中包含数组,且Unity代码中数组直接赋值,变量名需一致,并进行序列化操作。参考多个资料来理解和修正此问题。
最低0.47元/天 解锁文章
2728

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



