我有两个阵列,合并两个数组作为JSON
Array 1 = [ a, b, c, d]
Array 2 = [ 1, 2, 3, 4]
我需要合并他们像字典/图(阵列1是键和阵列2的值),并将其转换成JSON。
以下是转换后的字典/映射到JSON和最终通缉的结果。
{"a":"1", "b":"2", "c":"3", "d":"4"}
我有两个阵列,合并两个数组作为JSON
Array 1 = [ a, b, c, d]
Array 2 = [ 1, 2, 3, 4]
我需要合并他们像字典/图(阵列1是键和阵列2的值),并将其转换成JSON。
以下是转换后的字典/映射到JSON和最终通缉的结果。
{"a":"1", "b":"2", "c":"3", "d":"4"}
数组转换成JSON最简单的方法是:
JSONArray jsonArray = new JSONArray(Arrays.asList(myArray));
我想,你希望以下内容:
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();
让我试一试。感谢您的快速响应 – CC2079 2015-02-08 16:54:14
作为一个简单的代码示例。
如果您有两个数组,可以说数组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;
看起来你不想两个数组实际上合并成一个,而是要创造一个它的密钥存储在第一个数组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"}
您可以使用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);
感谢所有输入特别感谢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();
}
}
}
**杰森格式{ “d”: “DD”, “B”: “BB”, “C”: “CC”, “一个”: “AA”}
org.json有一个简单的方法来做到这一点。
JSONArray keys = new JSONArray(Arrays.asList(array1));
JSONArray values = new JSONArray(Arrays.asList(array2));
JSONObject result = values.toJSONObject(keys);
你的意思是JSON&你试过了什么吗? – Reimeus 2015-02-08 16:37:01
是的JSON,我试着用com.google.gson.Gson – CC2079 2015-02-08 16:38:48
我不认为GSON是你做这件事的正确方法,因为它将类映射到JSON,但你的结构是动态的。我会选择JSON SIMPLE:https://code.google.com/p/json-simple/wiki/EncodingExamples – EpicPandaForce 2015-02-08 16:41:47