[英]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.