“线程中的异常”;“主要”;java.lang.NullPointerException-JSon到java
我试图通过GSON将JSON代码解析成JAVA。我以前也做过类似的例子,效果很好,但当我尝试在程序中实现时,会出现错误:“线程中的异常”;“主要”;java.lang.NullPointerException-JSon到java,java,json,arraylist,nullpointerexception,Java,Json,Arraylist,Nullpointerexception,我试图通过GSON将JSON代码解析成JAVA。我以前也做过类似的例子,效果很好,但当我尝试在程序中实现时,会出现错误: 'Exception in thread "main" java.lang.NullPointerException at personality.Child.toString(Child.java:25) at java.lang.String.valueOf(String.java:2994) at java.io.PrintStream.println(PrintStr
'Exception in thread "main" java.lang.NullPointerException
at personality.Child.toString(Child.java:25)
at java.lang.String.valueOf(String.java:2994)
at java.io.PrintStream.println(PrintStream.java:821)
at personality.Personality.main(Personality.java:48)
"
我已经做了研究,但仍然没有找到一个明确的解决方案。所以我在问你们
我的代码:
个性主类
public class Personality {
public static void main(String[] args) throws IOException {
// TODO code application logic her
Gson gson = new Gson();
Child C = gson.fromJson(new FileReader("user.json"), Child.class);
System.out.println(C);
}
}
public class User {
public String category;
public String id;
public String name;
public double percentage;
public double sampling_error;
//Constructor
public User(String category, String id, String name , double percentage, double sampling_error) {
this.category = category;
this.id = id;
this.name = name;
this.percentage = percentage;
this.sampling_error = sampling_error;
}
@Override
public String toString() {
return "Category " + category + " : id = " + id + " name = " + name;
}
}
public class Child {
public ArrayList <User> child; //Assign arraylist User to Child class
// toString override - not related to JSON processing, just included for debugging purposes
@Override
public String toString() {
StringBuilder A = new StringBuilder();
A.append("Number of childrens = " + child.size() + "\n"); //Error points to here
for (User U : child) {
A.append(U.toString() + "\n"); //assigns Planet To string to
}
return A.toString();
}
用户类
public class Personality {
public static void main(String[] args) throws IOException {
// TODO code application logic her
Gson gson = new Gson();
Child C = gson.fromJson(new FileReader("user.json"), Child.class);
System.out.println(C);
}
}
public class User {
public String category;
public String id;
public String name;
public double percentage;
public double sampling_error;
//Constructor
public User(String category, String id, String name , double percentage, double sampling_error) {
this.category = category;
this.id = id;
this.name = name;
this.percentage = percentage;
this.sampling_error = sampling_error;
}
@Override
public String toString() {
return "Category " + category + " : id = " + id + " name = " + name;
}
}
public class Child {
public ArrayList <User> child; //Assign arraylist User to Child class
// toString override - not related to JSON processing, just included for debugging purposes
@Override
public String toString() {
StringBuilder A = new StringBuilder();
A.append("Number of childrens = " + child.size() + "\n"); //Error points to here
for (User U : child) {
A.append(U.toString() + "\n"); //assigns Planet To string to
}
return A.toString();
}
儿童班
public class Personality {
public static void main(String[] args) throws IOException {
// TODO code application logic her
Gson gson = new Gson();
Child C = gson.fromJson(new FileReader("user.json"), Child.class);
System.out.println(C);
}
}
public class User {
public String category;
public String id;
public String name;
public double percentage;
public double sampling_error;
//Constructor
public User(String category, String id, String name , double percentage, double sampling_error) {
this.category = category;
this.id = id;
this.name = name;
this.percentage = percentage;
this.sampling_error = sampling_error;
}
@Override
public String toString() {
return "Category " + category + " : id = " + id + " name = " + name;
}
}
public class Child {
public ArrayList <User> child; //Assign arraylist User to Child class
// toString override - not related to JSON processing, just included for debugging purposes
@Override
public String toString() {
StringBuilder A = new StringBuilder();
A.append("Number of childrens = " + child.size() + "\n"); //Error points to here
for (User U : child) {
A.append(U.toString() + "\n"); //assigns Planet To string to
}
return A.toString();
}
我搜索了很多东西,但找不到有助于解决这个问题的问题,我知道为什么会发生NullPointException,但不知道它是如何解决的。是的,我看过这个例子,但在这方面对我帮助不大(或者它可能会,但不确定)。感谢您的时间:)根据您发布的代码,您的数组
ArrayList子项
为空。这将在您第一次尝试访问(用户U:child){的这一行时导致NullPointerException。您需要初始化子数组,如ArrayList child=new ArrayList()
。
您的代码还存在许多其他问题。根据您发布的代码,您的array
ArrayList子项
为空。这将在您第一次尝试访问(用户U:child)的这一行时导致NullPointerException{。您需要初始化子数组,类似于ArrayList child=new ArrayList()
。
您的代码还有许多其他问题。
child
类中的child
字段的名称不适合它,因为'child'的类型是User isnull
。而NullPointerException。因此,我认为您的映射有问题。我在child
类中没有看到children
字段child
类中的child
字段,其名称不适合,因为'child'的类型为User为null
。而NullPointerException。因此,我认为您的映射有问题。我在child
类中没有看到children
字段。