gpt4 book ai didi

java - 使用简单 JSON Jar 从数组中读取 JSON 对象

转载 作者:行者123 更新时间:2023-11-30 03:21:53 24 4
gpt4 key购买 nike

我有一个如下的 JSON 文件

{
"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"
}
]
}

我正在尝试访问 ClassId=1 的所有项目的 ItemId。我能够打印完整的 json 数组,但无法单独找到打印 itemId。

我使用的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);
}
}
}

最佳答案

String itemId;
for (int i = 0; i < itemList.length(); i++) {
JSONObject obj= itemList.getJSONObject(i);
itemId=(String) jsonObject.get("ItemId");
}

尝试上面的方法而不是迭代器。 注意:如果您使用(导入)org.json.simple.JSONArray,则必须使用 JSONArray.size() 来获取所需的数据。但如果您使用的是 org.json.JSONArray,请使用 JSONArray.length()。

关于java - 使用简单 JSON Jar 从数组中读取 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31148194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com