Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.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在json中缺少字段时引发空指针异常_Java_Json_Gson_Pojo - Fatal编程技术网

Java GSON在json中缺少字段时引发空指针异常

Java GSON在json中缺少字段时引发空指针异常,java,json,gson,pojo,Java,Json,Gson,Pojo,GSON在json中缺少字段时引发空指针异常 复习课: public class ReviewClass { private String name; private List<Review> reviews; public String getName() { return name; } public void setName(String name) { this.name = name; } public List<Review> getR

GSON在json中缺少字段时引发空指针异常

复习课:

public class ReviewClass
{
private String name;

private List<Review> reviews;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public List<Review> getReviews() {
    return reviews;
}

public void setReviews(List<Review> reviews) {
    this.reviews = reviews;
}
}

class Review {
private String name;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

}
JSON(无审查字段):


因此,当json中没有“reviews”字段时,GSON抛出空指针异常。请帮助我。

Gson正确地为
getReviews()
返回了一个
null
值,因为JSON中没有任何评论。导致NPE的是您的
println()
调用,因为您无法在
null
上调用
.get(0)

println()
之前添加空检查,例如

if (reviewResults.getReviews() != null) {
  System.out.println(reviewResults.getReviews().get(0).getName());
}
或者,当
reviews
null
时,让您的
getReviews()
方法返回一个非null的
列表

 {"itemId":978998,"name":"Palet","salePrice":15.88,"upc":"708431191570","categoryPath":"Toys}
if (reviewResults.getReviews() != null) {
  System.out.println(reviewResults.getReviews().get(0).getName());
}