簡體   English   中英

將兩個數組合並為JSON

[英]Merge two Arrays as 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"}

作為簡單代碼的示例。

如果您有兩個數組,可以說數組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();


    }
}
}

** Jason格式{“ d”:“ dd”,“ b”:“ bb”,“ c”:“ cc”,“ a”:“ aa”}

org.json有一個簡單的方法。

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

JSONObject result = values.toJSONObject(keys);

將數組轉換為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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM