我有2个带字符串的数组。
String [] keys = {"key1", "key2",....}
String [] values = {"value1", "value2",....}
它们的大小未知,但它们的大小相同。
我想从中生成一个Json对象,例如:
{
"key1":"value1",
"key2":"value2",
...
}
对此有什么好的做法?
答案 0 :(得分:2)
您可以遍历数组,获取每个key, value
对,并将它们添加到JSON对象。
<强> GSON:强>
JsonObject jsonObject = new JsonObject();
for (int i = 0; i < keys.length; i ++) {
jsonObject.addProperty(keys[i], values[i]);
}
<强>杰克逊:强>
ObjectNode jsonObject = JsonNodeFactory.instance.objectNode();
for (int i = 0; i < keys.length; i ++) {
jsonObject.put(keys[i], values[i]);
}
答案 1 :(得分:1)
作为选项,您可以创建Map
并使用杰克逊库中的ObjectMapper
序列化它:
Map<String, String> map = new HashMap<>();
for (int i = 0; i < keys.length; ++i) {
map.put(keys[i], values[i]);
}
ObjectMapper mapper = new ObjectMapper();
return mapper.writeValueAsString(map);
答案 2 :(得分:0)
我想说将它们放入Map中,然后使用像Gson这样的东西转换成JSON。
public static void main(String[] args) {
String[] keys = {"key1", "key2"};
String[] values = {"value1", "value2"};
Map<String, String> map = new HashMap<>();
for (int i = 0; i < keys.length; i++) {
map.put(keys[i], values[i]);
}
Gson gson = new GsonBuilder().setPrettyPrinting().create();
System.out.println(gson.toJson(map));
}