Android GSON不使用变量名反序列化JSON
我想知道如何在GSON中反序列化这个。这就是我到目前为止所拥有的 我有一个KLM文件导入到一个fusion表中,我可以从google检索到,它看起来是这样的:Android GSON不使用变量名反序列化JSON,android,json,gson,Android,Json,Gson,我想知道如何在GSON中反序列化这个。这就是我到目前为止所拥有的 我有一个KLM文件导入到一个fusion表中,我可以从google检索到,它看起来是这样的: { "kind": "fusiontables#sqlresponse", "columns": [ "description", "name", "Address", "geometry" ], "rows": [ [ "Address: Cape Colony and Commodore Drive
{
"kind": "fusiontables#sqlresponse",
"columns": [
"description",
"name",
"Address",
"geometry"
],
"rows": [
[
"Address: Cape Colony and Commodore Drive San Jose, CA 95133",
"Berryessa Community Garden",
"Cape Colony and Commodore Drive San Jose, CA 95133",
{
"geometry": {
"type": "Point",
"coordinates": [
-121.862809,
37.375257,
0.0
]
}
}
],
[
"Address: S. 6th Street and Bestor Street San Jose, CA 95112",
"Bestor Community Garden",
"S. 6th Street and Bestor Street San Jose, CA 95112",
{
"geometry": {
"type": "Point",
"coordinates": [
-121.873797,
37.32357,
0.0
]
}
}
], ...
我想知道如何在GSON中反序列化这个。我有基本的设置:
反序列化json响应的异步调用:
//Deserialization
Type deserializationType = new TypeToken<FusionTableModel>() {}.getType();
FusionTableModel responceWrapper = gson.fromJson(sb.toString(), deserializationType);
//反序列化
类型反序列化类型=新的TypeToken(){}.getType();
FusionTableModel responceWrapper=gson.fromJson(sb.toString(),反序列化类型);
类别:
public class FusionTableModel {
private String kind;
private ArrayList<String> columns;
}
公共类FusionTableModel{
私有字符串类;
私有ArrayList列;
}
公共类示例{
@暴露
私有字符串类;
@暴露
private List columns=new ArrayList();
@暴露
私有列表行=新的ArrayList();
公共字符串getKind(){
回报类;
}
公共void setKind(字符串类型){
this.kind=kind;
}
公共列表getColumns(){
返回列;
}
公共void集合列(列表列){
this.columns=列;
}
公共列表getRows(){
返回行;
}
公共无效集合行(列表行){
this.rows=行;
}
}
将来有很多json-to-pojo工具,您可以使用它们从json结构生成java。那么您的问题是什么?你有什么错误吗?如果是这样,您可以发布错误日志吗?在第一次检查时,您的FusionTableModel几乎没有填写足够的内容来镜像json。@JohnWhite“我正在试图找出如何在GSON中反序列化它。”您建议使用哪种方法,因为这会给我带来一个错误?这是什么意思?它抛出了什么错误?应该是一个字符串,但是是BEGIN\u object。您可以发布一些日志或其他内容吗?从一句话中收集你的意思真的很难。
public class Example {
@Expose
private String kind;
@Expose
private List<String> columns = new ArrayList<String>();
@Expose
private List<List<String>> rows = new ArrayList<List<String>>();
public String getKind() {
return kind;
}
public void setKind(String kind) {
this.kind = kind;
}
public List<String> getColumns() {
return columns;
}
public void setColumns(List<String> columns) {
this.columns = columns;
}
public List<List<String>> getRows() {
return rows;
}
public void setRows(List<List<String>> rows) {
this.rows = rows;
}
}