使用 javax 时如何更改 JSONObject 的类型

How change type of JSONObject when using javax

我有一个 StringBuilder:

我的代码如下:

String response = sb.toString();
// logger.info("response is '{}' ", response);
                         
JsonObject jsonObject = new JsonObject(response);
JsonObject fileStatuses = jsonObject.getJsonObject("FileStatuses");
JsonArray fileStatus = (JsonArray) fileStatuses.getJsonArray("FileStatus");
                    
for (int i = 0; i < fileStatus.size(); ++i) {
    JsonObject rec = fileStatus.getJsonObject(i);                   
    String pathSuffix = rec.getString("pathSuffix");
    logger.info(" the pathSuffix value is '{}' ", pathSuffix );
}

我想使用 javax.json.JsonObject 而不是 org.json.JsonObject。 所以,问题出在new JsonObject(response);==> Cannot instantiate the type JsonObject.

我知道 org.json.JSONObject 有一个接受字符串的构造函数,但我认为使用 javax.json.JsonObject 时情况并非如此。

我如何更正我的代码以使 JsonObject jsonObject = new JsonObject(response) 获取字符串并继续使用 javax.json.JsonObject class?

根据它的 API 而不是使用 JsonObject jsonObject = new JsonObject(response); 你可以从你的 response-String 实例化它,像这样:

String response = sb.toString();

StringReader reader = new StringReader(response);
JsonReader jsonReader = Json.createReader(reader);
JsonObject jsonObject = jsonReader.readObject();
jsonReader.close();