如何使用 JSONObject 在 Java 中创建正确的 JSONArray

2022-08-31 07:54:17

如何在Java中使用JSONObject创建如下所示的JSON对象?

{
    "employees": [
        {"firstName": "John", "lastName": "Doe"}, 
        {"firstName": "Anna", "lastName": "Smith"}, 
        {"firstName": "Peter", "lastName": "Jones"}
    ],
    "manager": [
        {"firstName": "John", "lastName": "Doe"}, 
        {"firstName": "Anna", "lastName": "Smith"}, 
        {"firstName": "Peter", "lastName": "Jones"}
    ]
}

我发现了很多例子,但不是我确切的JSONArray字符串。


答案 1

以下是一些使用java 6的代码,可帮助您入门:

JSONObject jo = new JSONObject();
jo.put("firstName", "John");
jo.put("lastName", "Doe");

JSONArray ja = new JSONArray();
ja.put(jo);

JSONObject mainObj = new JSONObject();
mainObj.put("employees", ja);

编辑:由于这里有很多关于vs的混淆,我将尝试解释其中的区别。在java 6中,org.json.JSONArray包含该方法,在java 7中,javax.json包含该方法。putaddputadd

在java 7中使用构建器模式的示例如下所示:

JsonObject jo = Json.createObjectBuilder()
  .add("employees", Json.createArrayBuilder()
    .add(Json.createObjectBuilder()
      .add("firstName", "John")
      .add("lastName", "Doe")))
  .build();

答案 2

我想你从服务器或文件获取这个JSON,并且你想从中创建一个JSONArray对象。

String strJSON = ""; // your string goes here
JSONArray jArray = (JSONArray) new JSONTokener(strJSON).nextValue();
// once you get the array, you may check items like
JSONOBject jObject = jArray.getJSONObject(0);

希望这有助于:)