-1

我正在使用以下内容:

[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 必须表示对象类型。请告诉我我做错了什么。

4

1 回答 1

0

您的 json 以 an 开头[并以 a 结尾,]这表明它是一个数组,而不是一个对象。

当您尝试将其反序列化为对象根对象时,它会失败,因为它期望使用{and进行对象注释}

您可以通过将数组更改为对象来解决此问题。或者通过将其反序列化为数组。

您可以在此答案中找到一些示例和更多解释:Serialize and Deserialize Json and Json Array in Unity

于 2019-04-03T07:28:23.283 回答