Ich versuche, Json-Arraylist (Kinder) in Java mit GSON und einer for-Schleife zu analysieren. Aber ich erhalte den folgenden Fehler:JSONArray-Array = neues JSONArray (string_of_json_array);
for each not applicable to expression type
required:array or java.lang.iterable
found:String
Hier ist die Haupt-Java-Klasse, die diesen Fehler zeigt
try {
br = new BufferedReader(new FileReader("user.json"));
Tree result = gson.fromJson(br, Tree.class);
if (result !=null){
for (User t : result.getCategory()){ //ERROR IS HERE (squiggly red line)
System.out.println(t.getId() + "-" + t.getName() + "-" + t.getCategory() + "-" + t.getPercentage()); //ERROR IS ALSO HERE FOR EACH VARIABLES
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (br != null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Dies ist der Baum Klasse:
private String category;
@SerializedName("children")
@Expose
private List<Child> children = new ArrayList<Child>();
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public List<Child> getChildren() {
return children;
}
public void setChildren(List<Child> children) {
this.children = children;
}
Benutzerklasse:
private String id;
@SerializedName("processed_lang")
@Expose
private String processedLang;
@SerializedName("source")
@Expose
private String source;
@SerializedName("tree")
@Expose
private Tree tree;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getProcessedLang() {
return processedLang;
}
public void setProcessedLang(String processedLang) {
this.processedLang = processedLang;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public Tree getTree() {
return tree;
}
public void setTree(Tree tree) {
this.tree = tree;
}
String getName() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
Kann mir jemand sagen, wo ich falsch gelaufen bin und wenn ihr den JSON-Code sehen wollt, lasst es mich wissen, ich werde es auch platzieren und der Grund warum ich es nicht platzierte ist, weil es sehr lang ist. Wie kann ich das Array bekommen? Kinder auflisten? Vielen Dank für Ihre Zeit.
'getCategory' sendet einen String zurück, aber Sie versuchen, über es in Ihrem' for' Schleife zu durchlaufen. Was versuchst du hier zu erreichen? – Zircon
Leider habe ich vergessen zu erwähnen, dass .. Ich versuche, die Arraylist Children anzuzeigen. –