Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java google gson要读取的JSON的结构是什么_Java_Json_Gson - Fatal编程技术网

Java google gson要读取的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

考虑到下面的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 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课程。