[英]Deserializing json using gson
我在反序列化以下json時遇到問題:
{
"17":"asdf",
"18":"fdsa",
"19":"gfds",
"34":"vcxz",
"35":"oiue",
"36":"oiuy"
}
至:
public class CategoryList {
List<Category> list;
}
public class Category {
String id;
String name;
}
我收到以下IllegalStateException
:
Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2
請告訴我我在哪里犯錯。
該錯誤是不言自明的,解串器期望使用JSON數組,因為您的類包含List
。
嘗試以下JSON:
{
"list": [
{
"id": "17",
"name": "asdf"
}
]
}
應該正確序列化
以下json
{
"17":"asdf",
"18":"fdsa",
...
}
是JSON對象,而不是數組。 您的類(Category和CategoryList)應使用以下json:
{
list: [
{id: 17, name: "asdf"},
{id: 18, name: "fdsa"},
....
]
}
更改您的json或類。
編輯:問題是(如果我理解您的示例)您的json對象具有可變數量的字段。 這意味着您必須使用諸如hashmap之類的東西而不是您的類。 嘗試將您的json反序列化為
Map<int, String>
您可以在以下答案中找到一些幫助: https : //stackoverflow.com/a/8103092/2880555 (您將被重定向到此鏈接http://programmerbruce.blogspot.com/2011/06/gson-v-jackson。 html,並在該頁面中搜索“將任何JSON對象轉換為Map的Gson代碼”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.