json - Unity 3D:反序列化时出现 JSON 错误:ArgumentException:JSON 必须表示对象类型
问题描述
我正在使用以下内容:
[System.Serializable]
public class Choice
{
public string choice;
public int votes;
}
[System.Serializable]
public class RootObject
{
public string question;
public string published_at;
public List<Choice> choices;
}
反序列化以下 JSON:
[ {“问题”:“最喜欢的编程语言?”,“published_at”:“2015-08-05T08:40:51.620Z”,“选择”:[{“选择”:“斯威夫特”,“投票”:2048 } ,{“选择”:“Python”,“投票”:1024 },{“选择”:“Objective-C”,“投票”:512 },{“选择”:“Ruby”,“投票”:256 } ] } ]
我在控制台中收到此错误消息:ArgumentException:JSON 必须表示对象类型。请告诉我我做错了什么。
解决方案
您的 json 以 an 开头[
并以 a 结尾,]
这表明它是一个数组,而不是一个对象。
当您尝试将其反序列化为对象根对象时,它会失败,因为它期望使用{
and进行对象注释}
。
您可以通过将数组更改为对象来解决此问题。或者通过将其反序列化为数组。
您可以在此答案中找到一些示例和更多解释:Serialize and Deserialize Json and Json Array in Unity
推荐阅读
- javascript - 如何使用 javascript(DOM 操作)更改 slate 编辑器值
- charts - 当较长时间框架显示上升趋势时,在较短时间框架内买入和卖出标记
- python - 将 Python 字典与列表作为值进行比较
- interstitial - Facebook 受众插页式错误 (#606) 展示位置被阻止
- ruby-on-rails - 自加入如何从父级引用关联
- python - 选择单选按钮时如何在 QTableView 中写入?[PyQt5]
- swift - SwiftUI - ForEach 同时切换多个按钮
- angular - 使用从 REST API 接收的数据将数据绑定到 Html 标签 | 离子和角度
- colors - 我可以在 Rstudio 中对编码修订进行着色吗
- r - plm 功能将平衡面板更改为不平衡