java - 从 javax.json.JsonArray 转换为 org.json.JSONArray

标签 java org.json javax.json

是否可以从较新的 EJB JSON 库转换为较旧的 org.json 库,而无需依赖 org.json.simple 或 GS​​ON?

在下面的例子中,“buttons”是一个填充的 JsonArray,我试图将其复制到 JSONArray 中以用于遗留代码。但是,从字符串化值初始化 JSONArray 总是会失败,并显示“A JSONObject 文本必须以 '{' 开头”,因为引号被视为第一个字符而不是大括号。

JSONArray newButtons = new JSONArray(); for (int i = 0; i < buttons.size(); i++) { JsonString button = buttons.getJsonString(i); newButtons.put(new JSONArray(button.toString())); } return new JSONArray(newButtons);

似乎没有任何类型的 org.json 对象可以使用 javax.json 库中的 toString() 值从字符串构造函数初始化。我已成功将数据从 org.json 结构移动到 javax.json 结构,但反之则不然。 org.json 库是否太不灵活而无法做到这一点?

最佳答案

我还没有尝试过,但我相信以下应该有效。

JSONArray newButtons = new JSONArray();
for (int i = 0; i < buttons.size(); i++) {
    JsonObject button = buttons.getJsonObject(i);
    newButtons.put(new org.json.JSONObject(button.toString()));
}
return newButtons;

通过下面的行,您首先获得索引为“i”的对象,然后从中创建一个 JSON 字符串。您的原始代码而是将元素“i”作为值而不是对象返回。

JsonString button = buttons.getJsonObject(i).toString();

关于java - 从 javax.json.JsonArray 转换为 org.json.JSONArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57485331/

相关文章:

java - 带注释的 Spring + Hibernate : how to bind Hibernate Session to thread?

android - 如何解析从 Android 应用程序中的 Geocoding API (V3) 收到的 Json 响应?

java - 无法从 String 解析为 JSONObject

java - 使用 JsonGenerator 将字符串映射为 JSON

Java JSON : get object-value without quotes?

java - 如何使用 GSON 解析 JSON 响应 (Java/Android)

java - 无法将加密格式从 Java 复制到 PHP

java - 应用程序生成 UUID?

java - 将复合java对象转换为CSV

Java:生成 JSON:尝试命名对象和数组时出现异常