Я пытаюсь разобрать Json arraylist (дети) на Java, используя GSON и цикл for. Но я получаю следующее сообщение об ошибке:JSONArray array = new JSONArray (string_of_json_array);
for each not applicable to expression type
required:array or java.lang.iterable
found:String
Вот основной Java класс, который отображает эту ошибку
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();
}
}
Это дерево Класс: Класс
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;
}
Пользователь:
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.
}
Может кто-нибудь сообщить мне, где я поступил не так, и если вы, ребята, хотите увидеть json-код, дайте мне знать, я также поместлю его, и причина, по которой я его не размещал, потому что он очень длинный. Так как я могу получить массив показывать список детей? Спасибо за ваше время.
'getCategory' возвращает строку, но вы пытаетесь итерацию над ним в вашем' for' цикла. Что вы пытаетесь сделать здесь? – Zircon
Извините, что забыл упомянуть об этом. Я пытаюсь отобразить детей из Arraylist. –