我有两个数组,
Array 1 = [ a, b, c, d]
Array 2 = [ 1, 2, 3, 4]
我需要像字典/地图一样合并它们(数组1是键,数组2是值)并将其转换为JSON。
下面是转换后的字典/地图到JSON和最终想要的结果。
{"a":"1", "b":"2", "c":"3", "d":"4"}
答案 0 :(得分:2)
作为简单代码的一个例子。
如果你有两个数组,让我们说数组A和B,只需迭代它们并创建它们的JSONObject,其中数组A是键,数组B是值。
基本代码示例:
JSONObject map = new JSONObject()
for(int i =0; i<array.size(); i++) {
map.put(arrayA.[i],arrayB[i]);
}
return map;
答案 1 :(得分:1)
看起来您并不想将两个数组合并为一个,但是您想要创建JSON对象,其中的键存储在第一个数组中,而值则存储在第二个数组中。在这种情况下,您可以使用org.json.JSONObject。
这是一个简单的例子:
String[] keys = {"a", "b", "c", "d"};
String[] values = {"aa", "bb", "cc", "dd"};
JSONObject jsonObject = new JSONObject();
for (int i = 0; i<keys.length; i++){
jsonObject.put(keys[i], values[i]);
}
System.out.println(jsonObject);
输出{"a":"aa","b":"bb","c":"cc","d":"dd"}
答案 2 :(得分:0)
您可以使用jackson,然后将给定的列表合并到Map
Map<String, String> map = new HashMap<>();
Iterator<String> keys = Arrays.asList("a","b").iterator();
Iterator<String> values = Arrays.asList("aa", "bb").iterator();
while (keys.hasNext() && values.hasNext()) {
map.put(keys.next(), values.next());
}
ObjectMapper mapper = new ObjectMapper();
String result = mapper.writeValueAsString(map);
答案 3 :(得分:0)
感谢所有投入,特别感谢Pshemo。我的工作代码:
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
public class ArrayToJason {
public static void main (String args[]) throws Exception{
String [] value = {"a", "b" , "c", "d"};
String [] key = {"aa", "bb", "cc", "dd"};
Map <String, String> map1 = new HashMap();
Iterator <String> keys = Arrays.asList(value).iterator();
Iterator <String> values = Arrays.asList(key).iterator();
while (keys.hasNext() && values.hasNext()) {
map1.put(keys.next(), values.next());
}
ObjectMapper mapper = new ObjectMapper();
try {
String result = mapper.writeValueAsString(map1);
System.out.println("Jason format " + result);
}catch (JsonGenerationException e) {
e.printStackTrace();
}
}
}
**杰森格式{&#34; d&#34;:&#34; dd&#34;,&#34; b&#34;:&#34; bb&#34;,&#34; c&# 34;:&#34; CC&#34;&#34;&#34;:&#34; AA&#34;}
答案 4 :(得分:0)
org.json有一个简单的方法。
JSONArray keys = new JSONArray(Arrays.asList(array1));
JSONArray values = new JSONArray(Arrays.asList(array2));
JSONObject result = values.toJSONObject(keys);
答案 5 :(得分:-1)
将数组转换为JSON的最简单方法是:
JSONArray jsonArray = new JSONArray(Arrays.asList(myArray));
答案 6 :(得分:-1)
我假设你想要以下内容:
StringBuilder builder = new StringBuilder();
for (int i = 0; i < array1.length; i++)
{
builder.append("\"");
builder.append(array1[i]);
builder.append("\":\"");
builder.append(array2[i]);
builder.append("\"");
if (i < (array1.length - 1))
builder.append(", ");
}
String result = builder.toString();