从 javax.json.JsonArray 转换为 org.json.JSONArray
Converting from javax.json.JsonArray to org.json.JSONArray
是否可以从较新的 EJB JSON 库转换为较旧的 org.json 库而不必依赖 org.json.simple 或 GSON?
在下面的例子中,"buttons" 是一个填充的 JsonArray,我试图将它复制到一个 JSONArray 中以用于遗留代码。但是从字符串化值初始化 JSONArray 总是失败并显示 "A JSONObject text must begin with '{'" 因为引号被视为第一个字符而不是大括号。
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 字符串。您的原始代码 returns 元素 'i' 作为值而不是对象。
JsonString button = buttons.getJsonObject(i).toString();
是否可以从较新的 EJB JSON 库转换为较旧的 org.json 库而不必依赖 org.json.simple 或 GSON?
在下面的例子中,"buttons" 是一个填充的 JsonArray,我试图将它复制到一个 JSONArray 中以用于遗留代码。但是从字符串化值初始化 JSONArray 总是失败并显示 "A JSONObject text must begin with '{'" 因为引号被视为第一个字符而不是大括号。
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 字符串。您的原始代码 returns 元素 'i' 作为值而不是对象。
JsonString button = buttons.getJsonObject(i).toString();