如何在 jsonObject 内的数组中获取特定元素

我正在使用JSON在java中导出一些数据,然后我正在读取该数据并尝试从JSON对象内的数组中获取元素,但我遇到了问题。


我尝试过很多事情,比如


jsonObject.get("InGameCord").get("x")

Object Testo = jsonObject.get("InGameCord");

Testo.x

诸如此类的事情以及更多不起作用的内容,因此删除了代码。


这是导出的 JSON 文件,我正在尝试访问 InGameCord 数组 X 或 Y。


{"BaseID":1,"BaseName":"Bandar-e-Jask Airbase","InGameCord":[{"x":463,"y":451}]}

这是我的文件阅读器代码


FileReader reader = new FileReader(filename);

JSONParser jsonParser = new JSONParser();

JSONObject jsonObject = (JSONObject) jsonParser.parse(reader);

System.out.println(jsonObject);

System.out.println("BaseName: "+jsonObject.get("BaseName"));

System.out.println("BaseID: "+jsonObject.get("BaseID"));

System.out.println("InGameCord: "+jsonObject.get("InGameCord"));

所有这些都有效并导出正确的信息。


因此,我试图让我们说出InGameCord的X值。


int X = 463;


呼啦一阵风
浏览 395回答 1
1回答

慕工程0101907

给定您的 JSON 数据:{"BaseID":1,"BaseName":"Bandar-e-Jask Airbase","InGameCord":[{"x":463,"y":451}]}"InGameCord"是可以实例化为 的数组的名称。JSONArray该数组仅包含一个元素:。{"x":463,"y":451}该数组元素可以实例化为 .它包含两个名称/值对:JSONObject"x"值为 463。"y"值为 451。因此,根据您提供的代码,实例化:JSONArrayJSONArray numbers = (JSONArray) jsonObject.get("InGameCord");将数组的第一个(也是唯一一个)元素检索到 :JSONObjectJSONObject jObj = (JSONObject) numbers.get(0);要将“x”的值放入变量中,请将返回的 by 转换为 a ,然后获取其:intObjectget()NumberintValue()int value = ((Number) jObj.get("x")).intValue();你甚至可以在一行中完成整件事,但它很丑陋:int y = ((Number) ((JSONObject) numbers.get(0)).get("y")).intValue();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java