Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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 某些对象无法通过Gson反序列化_Java_Json_Gson - Fatal编程技术网

Java 某些对象无法通过Gson反序列化

Java 某些对象无法通过Gson反序列化,java,json,gson,Java,Json,Gson,我正在尝试分析以下url: 当我通过Gson解析它时,我得到了一些记录,但不知何故,有些记录保持为空 这是我的密码: BufferedReader in = new BufferedReader(new InputStreamReader(url_tdm.openStream(), "UTF-8")); StringBuffer buffer = new StringBuffer(); int read; char[] chars = new char[1024

我正在尝试分析以下url:

当我通过Gson解析它时,我得到了一些记录,但不知何故,有些记录保持为空

这是我的密码:

    BufferedReader in = new BufferedReader(new InputStreamReader(url_tdm.openStream(), "UTF-8"));
    StringBuffer buffer = new StringBuffer();

    int read;
    char[] chars = new char[1024];
    while ((read = in.read(chars)) != -1)
    buffer.append(chars, 0, read); 

    String jsonLine = buffer.toString();

    JsonReader reader = new JsonReader(new StringReader(jsonLine));
    reader.setLenient(true);  // this is for Malformed json

    Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_DASHES).create();

    Crossref answer = gson.fromJson(reader, Crossref.class );

    List<Items> ao = answer.message.items;

    public class Crossref {
    public Message message;}

    public class Message {
    public List<Items> items;}

    public class Items {   
    public List<String> containerTitle;
    public List<String> ISSN;
    public String publisher;
    public List<String> title;
    public String DOI;
    public String type;}
因此,通过上面的代码,我可以获得容器标题、发布者和标题值。但是ISSN和DOIs是空的

我使用了FieldNamingPolicy,因为容器标题包含破折号,而我不能用java来命名我的字段,所以我将其写成驼峰大小写containerTitle


我不确定这是否会影响大写的DOI和ISSN记录,还是完全不同?

解决类似问题的最佳方法是使用

我建议你阅读另一个问题,看看一个很好的例子:


您还可以找到其他一些伟大的例子和解释

尝试在?Thank@EvanKnowles生成模式。通过应用first和after Get schema,我使用了jsonschema2pojo.org,可以运行建议的代码。然而,我仍然好奇我的代码中有什么问题。