我正在使用以下内容:
[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:
[ { “ question”:“最喜欢的编程语言?”, “ published_at”:“ 2015-08-05T08:40:51.620Z”, “选择”:[ { “ choice”:“ Swift”, “票数”:2048 },{ “ choice”:“ Python”, “票数”:1024 },{ “ choice”:“ Objective-C”, “票数”:512 },{ “ choice”:“ Ruby”, “票数”:256 } ] } ]
我在控制台中收到此错误消息: ArgumentException:JSON必须表示一个对象类型。请告诉我我在做什么错。
答案 0 :(得分:0)
您的json以<div ng-show="element['ServerValidationFailed']=="0""></div>
开头,以[
结尾,这表明它是一个数组,而不是对象。
当您尝试将其反序列化为 object 根对象时,它会失败,因为它会期望使用]
和{
进行对象注释。
您可以通过将数组更改为对象来解决此问题。 或通过反序列化为数组来代替。
您可以在此答案中找到一些示例和更多说明:Serialize and Deserialize Json and Json Array in Unity