繁体   English   中英

将Json字符串转换为Java对象Gson

[英]Json string to Java object Gson

我有以下格式的json字符串:

 [
   {
     "key1": { "key1":"val1","key2":"val2" },
     "key2": { "key1":"val1","key2":"val2" }
   }
]   

为了解析它,我创建了一个java类:

class data {
     String key;
     List <content> listdata;
     /* getter and setter for the attribute above */
     ...
   } 

现在,我遵循了Gson文档,并尝试提取数据:

Gson gson =new Gson();
data[] ints = gson.fromJson(MyjsonString, data[].class); 

我从Gson API收到解析错误,我做错了什么?

java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 1 path

用于解析json例如以下类

class data {
String key;
List <content> listdata;
/* getter and setter for the attribute above */
...
} 

您需要一个如下的json

"data" : {
 "key": "value",
 "listdata": [{ content object key attributes here }]
}

作为您的例外,您可以清楚地说出BEGIN_ARRAY but was STRING因此您必须在json使用array进行解析。

回复您的评论

如果您想解析以下json的类

{
 "key1": { "key1":"val1","key2":"val2" },
 "key2": { "key1":"val1","key2":"val2" }
}

然后您将具有如下的类结构

class Data {
 Map<String, String> key1;
 Map<String, String> key2;
 /* getter and setter for the attribute above */
} 

根据Json,此类结构有效:

class data {
 List <Map<String,Content> data;
 /* getter and setter for the attribute above */
 ...

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM