2015-02-08 141 views
0

我有两个阵列,合并两个数组作为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"} 
+3

你的意思是JSON&你试过了什么吗? – Reimeus 2015-02-08 16:37:01

+0

是的JSON,我试着用com.google.gson.Gson – CC2079 2015-02-08 16:38:48

+0

我不认为GSON是你做这件事的正确方法,因为它将类映射到JSON,但你的结构是动态的。我会选择JSON SIMPLE:https://code.google.com/p/json-simple/wiki/EncodingExamples – EpicPandaForce 2015-02-08 16:41:47

回答

-1

数组转换成JSON最简单的方法是:

JSONArray jsonArray = new JSONArray(Arrays.asList(myArray)); 
-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(); 
+0

让我试一试。感谢您的快速响应 – CC2079 2015-02-08 16:54:14

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

看起来你不想两个数组实际上合并成一个,而是要创造一个它的密钥存储在第一个数组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"}

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


    } 
} 
} 

**杰森格式{ “d”: “DD”, “B”: “BB”, “C”: “CC”, “一个”: “AA”}

0

org.json有一个简单的方法来做到这一点。

JSONArray keys = new JSONArray(Arrays.asList(array1)); 
JSONArray values = new JSONArray(Arrays.asList(array2)); 

JSONObject result = values.toJSONObject(keys);