【问题标题】:Modifying nested JSONObject using json simple使用 json simple 修改嵌套的 JSONObject
【发布时间】:2019-12-03 03:58:56
【问题描述】:

尝试在另一个 JSONbject 中修改 JSONObject 的值会引发找不到方法 getJSONObject 的符号错误...

我不能使用 getJSONObject 方法,我的解决方法是:

JSONObject Player = (JSONObject) PlayerTemp.get("Player");
Player.put("Language", "German");

但是以下方法不起作用:

JSONObject Player = PlayerTemp.getJSONObject("Player");

这是我的整个代码示例,我尝试修改嵌套在另一个 JSONObject 中的 JSONObject 中的值:

JSONParser parser = new JSONParser();

     try (Reader reader = new FileReader("../resources/PlayerTemp.json")) {

         JSONObject PlayerTemp = (JSONObject) parser.parse(reader);
         PlayerTemp.getJSONObject("Player").put("Language", "German");
         System.out.println(PlayerTemp.get("Player").toString());


     } catch (IOException e) {
         e.printStackTrace();
     } catch (ParseException e) {
         e.printStackTrace();
     }
 }

}

error: cannot find symbol
PlayerTemp.getJSONObject("Player").put("Language", "German");
          ^

【问题讨论】:

  • 你使用哪个库来解析JSON
  • 我使用 json.simple 1.1.1 作为我的库
  • 那是一个相当老的库 - 你能更新吗?
  • 由于某种原因,这是我在开始我的项目时发现的第一个...明天会更新并随时通知您。

标签: java json


【解决方案1】:

JSONObject 类中没有称为getJSONObject 的方法,因此您必须使用get() 进行显式类型转换。如果您想要更高级的方法,例如getJSONObject,请考虑使用Gsonjackson

JSONObject PlayerTemp = (JSONObject) parser.parse(reader);
JSONObject temp = (JSONObject) PlayerTemp.getJSONObject("Player");
temp.put("Language", "German");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    相关资源
    最近更新 更多