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

时间:2019-08-13 21:06:25

标签: java org.json javax.json

是否可以从较新的EJB JSON库转换为较旧的org.json库,而不必依赖org.json.simple或GSON?

在以下情况下,“按钮”是一个填充的JsonArray,我正在尝试将其复制到JSONArray中以获取旧代码。但是,从字符串值初始化JSONArray总是失败,并显示“ 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);

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

1 个答案:

答案 0 :(得分:1)

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

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();