我在 Unity 项目中的 JSON 反序列化突然停止处理某些输入。我正在使用 JsonFX。
JSON:
{"CloudsRoot": [
{
"id": "94",
"campaign_id": "32",
"text": "CustomImage",
"bubble_num": "-1",
"img1_name": "59e72a6f1a341",
"img2_name": "59e72a6f1b885"
},
{
"id": "95",
"campaign_id": "32",
"text": "Default Image",
"bubble_num": "4",
"img1_name": "4",
"img2_name": "4"
}]}
数据模型:
using System.Collections.Generic;
public class CloudsRoot {
public List<Clouds> Clouds{ get; set; }
}
public class Clouds {
public string id { get; set; }
public string campaign_id{ get; set; }
public string text { get; set; }
public string bubble_num { get; set; }
public string img1_name { get; set; }
public string img2_name { get; set; }
}
反序列化方法:
public CloudsRoot Deserialize(jsonString) {
CloudsRoot responseObject = JsonReader.Deserialize<CloudsRoot>(jsonString);
return responseObject;
}
返回的是一个CloudsRoot
内部有一个空 List 的对象。我尝试序列化单个Cloud
对象并且它有效。更糟糕的是,我有几个不同的 JSON 片段使用相同的方法和数据模型结构进行反序列化(只有变量名称不同),它们都可以工作。
我相信数据模型是正确的,JSON 是正确的并且没有错别字。我尝试在一个新的统一项目中重写代码,结果是一样的。有证据表明 JSON 片段存在某种错误,但我已经好几个小时没能找到问题所在。
我将不胜感激任何意见。
编辑:请不要关闭这个问题,它不是重复的。我尝试使用 JsonHelper,结果仍然得到一个空数组。我也尝试了故障排除部分的所有可能解决方案。