为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

呼啦一阵风 2022-09-07 17:14:42
我正在使用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 ,然后获取其:intObjectget()NumberintValue()

int value = ((Number) jObj.get("x")).intValue();

你甚至可以在一行中完成整件事,但它很丑陋:

int y = ((Number) ((JSONObject) numbers.get(0)).get("y")).intValue();


查看完整回答
反对 回复 2022-09-07
  • 1 回答
  • 0 关注
  • 394 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信