У меня есть JSON-файл, как показано нижечтения JSON объект из массива с помощью Simple JSON Jar
{
"ClassId": "1",
"ClassName": "mobiles",
"ClassItems": [
{
"ItemId": "1",
"ItemName": "Nokia",
"ItemImageName": "nokia.jpg",
"ItemUnitPrice": "200.00",
"ItemDiscountPercent": "0"
},
{
"ItemId": "2",
"ItemName": "Samsung",
"ItemImageName": "samsung.jpg",
"ItemUnitPrice": "400.00",
"ItemDiscountPercent": "0"
}
]
}
Я пытаюсь получить доступ к ItemIds для всех элементов с Classid = 1. Я могу напечатать полный массив json, но я не могу найти print itemIds самостоятельно.
код Java я использую ниже:
public class JSONExample {
/**
* @param args the command line arguments
* @throws java.io.IOException
*/
public static void main(String[] args) throws IOException {
JSONParser parser=new JSONParser();
try {
Object obj=parser.parse(new FileReader("JSON/TestJson.json"));
JSONObject jsonObject=(JSONObject) obj;
String classId=(String) jsonObject.get("ClassId");
String className=(String) jsonObject.get("ClassName");
if(classId.equals("1")){
JSONArray itemList = (JSONArray) jsonObject.get("ClassItems");
Iterator iterator=itemList.iterator();
while(iterator.hasNext())
{
System.out.println(itemList.get(1));
iterator.next();
}
}
} catch (FileNotFoundException ex) {
Logger.getLogger(JSONExample.class.getName()).log(Level.SEVERE, null, ex);
} catch (ParseException ex) {
Logger.getLogger(JSONExample.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Я пробовал, как вы упомянули, но получил следующие ошибки: error: не удалось найти символ {System.out.println (itemList.length()); symbol: method length() местоположение: переменная itemList типа JSONArray и ошибка: не удается найти символ JSONObject obj1 = itemList.getJSONObject (i); symbol: метод getJSONObject (int) местоположение: переменная itemList типа JSONArray – Sudershan
Вам просто не нужно копировать весь код, а вместо этого использовать его как refrence. Я мог бы использовать еще один json api. Но вы также можете найти аналогичный метод в своем api. Просто вы можете получить свою логику сверху. –
ОК, но я не смог найти метод length() для массива – Sudershan