尝试在另一个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");
          ^

最佳答案

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

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

08-04 12:33