我正在使用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;
1 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
给定您的 JSON 数据:{"BaseID":1,"BaseName":"Bandar-e-Jask Airbase","InGameCord":[{"x":463,"y":451}]}
"InGameCord"
是可以实例化为 的数组的名称。JSONArray
该数组仅包含一个元素:。
{"x":463,"y":451}
该数组元素可以实例化为 .它包含两个名称/值对:
JSONObject
"x"
值为 463。"y"
值为 451。
因此,根据您提供的代码,实例化:JSONArray
JSONArray numbers = (JSONArray) jsonObject.get("InGameCord");
将数组的第一个(也是唯一一个)元素检索到 :JSONObject
JSONObject jObj = (JSONObject) numbers.get(0);
要将“x”的值放入变量中,请将返回的 by 转换为 a ,然后获取其:int
Object
get()
Number
intValue()
int value = ((Number) jObj.get("x")).intValue();
你甚至可以在一行中完成整件事,但它很丑陋:
int y = ((Number) ((JSONObject) numbers.get(0)).get("y")).intValue();
添加回答
举报
0/150
提交
取消