Java google gson要读取的JSON的结构是什么
考虑到下面的JSON,我想知道如何生成一个Java google gson要读取的JSON的结构是什么,java,json,gson,Java,Json,Gson,考虑到下面的JSON,我想知道如何生成一个ResultSet实例,该实例携带Query值ppb package jsontest; import com.google.gson.Gson; /** * * @author yccheok */ public class Main { public static class ResultSet { public String Query; } /** * @param args the
ResultSet
实例,该实例携带Query
值ppb
package jsontest;
import com.google.gson.Gson;
/**
*
* @author yccheok
*/
public class Main {
public static class ResultSet {
public String Query;
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
final String s = "{\"ResultSet\":{\"Query\":\"ppb\"}}";
System.out.println(s);
Gson gson = new Gson();
ResultSet resultSet = gson.fromJson(s, ResultSet.class);
// {}
System.out.println(gson.toJson(resultSet));
// null?
System.out.println(resultSet.Query);
}
}
目前,我得到的是:
{"ResultSet":{"Query":"ppb"}}
{}
null
如果不修改字符串,如何获得正确的Java对象?首先尝试构造一个新对象,调用gson.toJson(object)
,然后查看结果
我没有gson,但jackson(json映射器的另一个对象)打印了以下内容:
{"Query":"ppb"}
因此,您不包括类名。事实上,这个例子正好说明了这一点。请看bagofprimitions
(最后一点是,在Java中,公认的做法是变量是小写的,即query
而不是query
)
更新如果确实无法更改json输入,则可以通过以下方式镜像结构:
public static class Holder {
public ResultSet ResultSet;
}
public static class ResultSet {
public String Query;
}
(然后使用
Holder h=gson.fromJson(s,Holder.class);
)@Yan Cheng CHEOK我不是这个意思。无论如何,请看我的更新我无法控制JSON字符串。它是从服务器返回的。确定。我可以看出我错过了Holder课程。