แปลงสตริง JSON เป็น HashMap


156

ฉันใช้ Java และฉันมีสตริงซึ่งเป็น JSON:

{
"name" : "abc" ,
"email id " : ["abc@gmail.com","def@gmail.com","ghi@gmail.com"]
}

จากนั้นแผนที่ของฉันใน Java:

Map<String, Object> retMap = new HashMap<String, Object>();

ฉันต้องการจัดเก็บข้อมูลทั้งหมดจาก JSONObject ใน HashMap นั้น

ทุกคนสามารถให้รหัสนี้ได้หรือไม่ ฉันต้องการใช้org.jsonห้องสมุด


ฉันไม่รู้ว่าทำไม json.org JSONObject ไม่มีผู้ทะเยอทะยานสำหรับตัวแปรแผนที่ส่วนตัวของสมาชิก ...
vzamanillo

1
วิธีแก้ปัญหาใน Kotlin โปรดตรวจสอบสิ่งนี้โดยใช้ gson stackoverflow.com/a/53763826/8052227
AndyGeek

แต่ทำไมคำถามถามJSONObjectเมื่อดูเหมือนว่าจะเป็นประเภทฟุ่มเฟือยที่ไม่จำเป็นเลย? การอ่าน JSON Mapนั้นง่ายมากโดยใช้ไลบรารี Java JSON ที่ดีเช่น Jackson, GSON, Genson, Moshi เหตุใด OP "ต้องการ" ใช้ org.json
StaxMan

1
@staxMan เนื่องจากนโยบายองค์กรบางครั้งคุณต้องใช้ไลบรารี inbuilt เท่านั้น ดังนั้นฉันต้องใช้ org.json เท่านั้น
Vikas Gupta

@VikasGupta ตกลงที่เหมาะสมถ้าใช้งานบนแพลตฟอร์มดังกล่าว (อาจเป็น Android)
StaxMan

คำตอบ:


214

ฉันเขียนโค้ดนี้ไปหลายวันโดยการสอบถามซ้ำ

public static Map<String, Object> jsonToMap(JSONObject json) throws JSONException {
    Map<String, Object> retMap = new HashMap<String, Object>();

    if(json != JSONObject.NULL) {
        retMap = toMap(json);
    }
    return retMap;
}

public static Map<String, Object> toMap(JSONObject object) throws JSONException {
    Map<String, Object> map = new HashMap<String, Object>();

    Iterator<String> keysItr = object.keys();
    while(keysItr.hasNext()) {
        String key = keysItr.next();
        Object value = object.get(key);

        if(value instanceof JSONArray) {
            value = toList((JSONArray) value);
        }

        else if(value instanceof JSONObject) {
            value = toMap((JSONObject) value);
        }
        map.put(key, value);
    }
    return map;
}

public static List<Object> toList(JSONArray array) throws JSONException {
    List<Object> list = new ArrayList<Object>();
    for(int i = 0; i < array.length(); i++) {
        Object value = array.get(i);
        if(value instanceof JSONArray) {
            value = toList((JSONArray) value);
        }

        else if(value instanceof JSONObject) {
            value = toMap((JSONObject) value);
        }
        list.add(value);
    }
    return list;
}

1
คุณสามารถตรวจจับข้อยกเว้นเหล่านั้นและโยนข้อยกเว้นรันไทม์หรือยืนยันแทนได้อย่างปลอดภัย คุณได้ตรวจสอบแล้วว่ามีคีย์และอาร์เรย์มีค่าที่ดัชนีที่คุณตรวจสอบ และไม่มีเหตุผลในการสร้าง retMap ก่อนที่จะตรวจสอบหาค่า null เนื่องจากมันถูกสร้างขึ้นสองครั้งเมื่อ json! = null ดูดีแม้ว่า
user1122069

สิ่งนี้นำเข้า / ใช้ lib ภายนอกอย่างไร Eclipse ไม่สามารถละลาย JSONArray และ JSONObject
Gewure

2
@Gewure ใช้ org.json
Vikas Gupta

133

เมื่อใช้GSonคุณสามารถทำสิ่งต่อไปนี้:

Map<String, Object> retMap = new Gson().fromJson(
    jsonString, new TypeToken<HashMap<String, Object>>() {}.getType()
);

8
แต่ฉันไม่ต้องการใช้ห้องสมุด GSon ฉันได้รับอนุญาตให้ใช้เฉพาะ "org.json" lirary '
Vikas Gupta

วิธีการอ่านลงในjsonString? อะไรคือความแตกต่างระหว่างjsonStringและวัตถุ json?
smatthewenglish

@Toon คุณสามารถทำอย่างอื่นได้หรือไม่?
Sharp Edge

@SharpEdge คุณหมายถึงเช่นนี้new Gson().toJson(map);?
Toon Borgers

สิ่งนี้ทำให้เป็นอันดับเป็นวัตถุดั้งเดิมหรือไม่ ถ้ามีวันที่ที่ฉันต้องการต่อเนื่องในแผนที่ด้วยล่ะ
John Ernest Guadalupe

44

หวังว่ามันจะใช้ได้ลองได้:

import com.fasterxml.jackson.databind.ObjectMapper;
Map<String, Object> response = new ObjectMapper().readValue(str, HashMap.class);

str, สตริง JSON ของคุณ

ง่ายเหมือนนี้ถ้าคุณต้องการส่งอีเมล

String emailIds = response.get("email id").toString();

เลือกวิธีนี้ มีประโยชน์เช่นกันเมื่อสตริง JSON ของคุณมีประเภทข้อมูลที่ซับซ้อนเช่นรายการตามที่อธิบายไว้ที่นี่
mania_device

เนื่องจากฉันใช้ห้องสมุดแจ็คสันในแอปพลิเคชันของฉันล่วงหน้าดังนั้นนี่คือคำตอบที่ดีที่สุดสำหรับปัญหาของฉัน ขอบคุณ :)
imans77

7

นี่คือรหัสของ Vikas ที่ส่งไปยัง JSR 353:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.json.JsonArray;
import javax.json.JsonException;
import javax.json.JsonObject;

public class JsonUtils {
    public static Map<String, Object> jsonToMap(JsonObject json) {
        Map<String, Object> retMap = new HashMap<String, Object>();

        if(json != JsonObject.NULL) {
            retMap = toMap(json);
        }
        return retMap;
    }

    public static Map<String, Object> toMap(JsonObject object) throws JsonException {
        Map<String, Object> map = new HashMap<String, Object>();

        Iterator<String> keysItr = object.keySet().iterator();
        while(keysItr.hasNext()) {
            String key = keysItr.next();
            Object value = object.get(key);

            if(value instanceof JsonArray) {
                value = toList((JsonArray) value);
            }

            else if(value instanceof JsonObject) {
                value = toMap((JsonObject) value);
            }
            map.put(key, value);
        }
        return map;
    }

    public static List<Object> toList(JsonArray array) {
        List<Object> list = new ArrayList<Object>();
        for(int i = 0; i < array.size(); i++) {
            Object value = array.get(i);
            if(value instanceof JsonArray) {
                value = toList((JsonArray) value);
            }

            else if(value instanceof JsonObject) {
                value = toMap((JsonObject) value);
            }
            list.add(value);
        }
        return list;
    }
}

สิ่งนี้ทำให้ฉันมีข้อผิดพลาดในการแยกแยะระหว่าง JsonObject และ JSONObject
sirvon

@ sirvon คุณช่วยอธิบายได้ไหม? รหัส JSR 353 ไม่มี "JSONObject" ฉันไม่แนะนำให้คุณผสมผสานเทคโนโลยี JSON เลือกอย่างใดอย่างหนึ่ง
Kolban

6
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;


public class JsonUtils {

    public static Map<String, Object> jsonToMap(JSONObject json) {
        Map<String, Object> retMap = new HashMap<String, Object>();

        if(json != null) {
            retMap = toMap(json);
        }
        return retMap;
    }

    public static Map<String, Object> toMap(JSONObject object) {
        Map<String, Object> map = new HashMap<String, Object>();

        Iterator<String> keysItr = object.keySet().iterator();
        while(keysItr.hasNext()) {
            String key = keysItr.next();
            Object value = object.get(key);

            if(value instanceof JSONArray) {
                value = toList((JSONArray) value);
            }

            else if(value instanceof JSONObject) {
                value = toMap((JSONObject) value);
            }
            map.put(key, value);
        }
        return map;
    }

    public static List<Object> toList(JSONArray array) {
        List<Object> list = new ArrayList<Object>();
        for(int i = 0; i < array.size(); i++) {
            Object value = array.get(i);
            if(value instanceof JSONArray) {
                value = toList((JSONArray) value);
            }

            else if(value instanceof JSONObject) {
                value = toMap((JSONObject) value);
            }
            list.add(value);
        }
        return list;
    }
}

4
มันจะมีประโยชน์ถ้าคุณเพิ่มคำอธิบาย: คำตอบของคุณจะปรับปรุงคำตอบที่มีอยู่สำหรับคำถามนี้อย่างไร
artem

5

ลองรหัสนี้:

 Map<String, String> params = new HashMap<String, String>();
                try
                {

                   Iterator<?> keys = jsonObject.keys();

                    while (keys.hasNext())
                    {
                        String key = (String) keys.next();
                        String value = jsonObject.getString(key);
                        params.put(key, value);

                    }


                }
                catch (Exception xx)
                {
                    xx.toString();
                }

3

การแปลงสตริง JSON เป็นแผนที่

public static Map<String, Object> jsonString2Map( String jsonString ) throws JSONException{
        Map<String, Object> keys = new HashMap<String, Object>(); 

        org.json.JSONObject jsonObject = new org.json.JSONObject( jsonString ); // HashMap
        Iterator<?> keyset = jsonObject.keys(); // HM

        while (keyset.hasNext()) {
            String key =  (String) keyset.next();
            Object value = jsonObject.get(key);
            System.out.print("\n Key : "+key);
            if ( value instanceof org.json.JSONObject ) {
                System.out.println("Incomin value is of JSONObject : ");
                keys.put( key, jsonString2Map( value.toString() ));
            }else if ( value instanceof org.json.JSONArray) {
                org.json.JSONArray jsonArray = jsonObject.getJSONArray(key);
                //JSONArray jsonArray = new JSONArray(value.toString());
                keys.put( key, jsonArray2List( jsonArray ));
            } else {
                keyNode( value);
                keys.put( key, value );
            }
        }
        return keys;
    }

การแปลงอาร์เรย์ JSON เป็นรายการ

public static List<Object> jsonArray2List( JSONArray arrayOFKeys ) throws JSONException{
        System.out.println("Incoming value is of JSONArray : =========");
        List<Object> array2List = new ArrayList<Object>();
        for ( int i = 0; i < arrayOFKeys.length(); i++ )  {
            if ( arrayOFKeys.opt(i) instanceof JSONObject ) {
                Map<String, Object> subObj2Map = jsonString2Map(arrayOFKeys.opt(i).toString());
                array2List.add(subObj2Map);
            }else if ( arrayOFKeys.opt(i) instanceof JSONArray ) {
                List<Object> subarray2List = jsonArray2List((JSONArray) arrayOFKeys.opt(i));
                array2List.add(subarray2List);
            }else {
                keyNode( arrayOFKeys.opt(i) );
                array2List.add( arrayOFKeys.opt(i) );
            }
        }
        return array2List;      
    }

แสดง JSON ของรูปแบบใด ๆ

public static void displayJSONMAP( Map<String, Object> allKeys ) throws Exception{
        Set<String> keyset = allKeys.keySet(); // HM$keyset
        if (! keyset.isEmpty()) {
            Iterator<String> keys = keyset.iterator(); // HM$keysIterator
            while (keys.hasNext()) {
                String key = keys.next();
                Object value = allKeys.get( key );
                if ( value instanceof Map ) {
                    System.out.println("\n Object Key : "+key);
                        displayJSONMAP(jsonString2Map(value.toString()));                   
                }else if ( value instanceof List ) {
                    System.out.println("\n Array Key : "+key);
                    JSONArray jsonArray = new JSONArray(value.toString());
                    jsonArray2List(jsonArray);
                }else {
                    System.out.println("key : "+key+" value : "+value);
                }
            }
        }   

    }

Google.gsonถึง HashMap


3

คุณสามารถใช้ Jackson API ด้วย:

    final String json = "....your json...";
    final ObjectMapper mapper = new ObjectMapper();
    final MapType type = mapper.getTypeFactory().constructMapType(
        Map.class, String.class, Object.class);
    final Map<String, Object> data = mapper.readValue(json, type);

3

คุณสามารถแปลงใด ๆJSONเป็นmapโดยใช้ห้องสมุดJacksonดังนี้

String json = "{\r\n\"name\" : \"abc\" ,\r\n\"email id \" : [\"abc@gmail.com\",\"def@gmail.com\",\"ghi@gmail.com\"]\r\n}";
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> map = new HashMap<String, Object>();
// convert JSON string to Map
map = mapper.readValue(json, new TypeReference<Map<String, Object>>() {});
System.out.println(map);

Maven Dependencies สำหรับJackson :

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.5.3</version>
    <scope>compile</scope>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.5.3</version>
    <scope>compile</scope>
</dependency>

หวังว่าจะช่วยได้ Happy coding :)


3

แปลงโดยใช้แจ็คสัน:

JSONObject obj = new JSONObject().put("abc", "pqr").put("xyz", 5);

Map<String, Object> map = new ObjectMapper().readValue(obj.toString(), new TypeReference<Map<String, Object>>() {});

2

คุณสามารถใช้ห้องสมุด google gson เพื่อแปลงวัตถุ json

https://code.google.com/p/google-gson/https://code.google.com/p/google-gson/

นอกจากนี้ยังมีห้องสมุดอื่น ๆ เช่นแจ็คสัน

สิ่งนี้จะไม่แปลงเป็นแผนที่ แต่คุณสามารถทำทุกสิ่งที่คุณต้องการ


โดยไม่ต้องใช้ไลบรารี wrapper ใด ๆ นอกจากนี้ยังง่ายต่อการแปลง
Vikas Gupta

2

หากคุณเกลียดการเรียกซ้ำ - ใช้ Stack และ javax.json เพื่อแปลง Json String เป็นรายการแผนที่:

import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Stack;
import javax.json.Json;
import javax.json.stream.JsonParser;

public class TestCreateObjFromJson {
    public static List<Map<String,Object>> extract(InputStream is) {
        List extracted = new ArrayList<>();
        JsonParser parser = Json.createParser(is);

        String nextKey = "";
        Object nextval = "";
        Stack s = new Stack<>();
        while(parser.hasNext()) {
            JsonParser.Event event = parser.next();
            switch(event) {
                case START_ARRAY :  List nextList = new ArrayList<>();
                                    if(!s.empty()) {
                                        // If this is not the root object, add it to tbe parent object
                                        setValue(s,nextKey,nextList);
                                    }
                                    s.push(nextList);
                                    break;
                case START_OBJECT : Map<String,Object> nextMap = new HashMap<>();
                                    if(!s.empty()) {
                                        // If this is not the root object, add it to tbe parent object
                                        setValue(s,nextKey,nextMap);
                                    }
                                    s.push(nextMap);
                                    break;
                case KEY_NAME : nextKey = parser.getString();
                                break;
                case VALUE_STRING : setValue(s,nextKey,parser.getString());
                                    break;
                case VALUE_NUMBER : setValue(s,nextKey,parser.getLong());
                                    break;
                case VALUE_TRUE :   setValue(s,nextKey,true);
                                    break;
                case VALUE_FALSE :  setValue(s,nextKey,false);
                                    break;
                case VALUE_NULL :   setValue(s,nextKey,"");
                                    break;
                case END_OBJECT :   
                case END_ARRAY  :   if(s.size() > 1) {
                                        // If this is not a root object, move up
                                        s.pop(); 
                                    } else {
                                        // If this is a root object, add ir ro rhw final 
                                        extracted.add(s.pop()); 
                                    }
                default         :   break;
            }
        }

        return extracted;
    }

    private static void setValue(Stack s, String nextKey, Object v) {
        if(Map.class.isAssignableFrom(s.peek().getClass()) ) ((Map)s.peek()).put(nextKey, v);
        else ((List)s.peek()).add(v);
    }
}


1

ย่อและมีประโยชน์:

/**
 * @param jsonThing can be a <code>JsonObject</code>, a <code>JsonArray</code>,
 *                     a <code>Boolean</code>, a <code>Number</code>,
 *                     a <code>null</code> or a <code>JSONObject.NULL</code>.
 * @return <i>Appropriate Java Object</i>, that may be a <code>Map</code>, a <code>List</code>,
 * a <code>Boolean</code>, a <code>Number</code> or a <code>null</code>.
 */
public static Object jsonThingToAppropriateJavaObject(Object jsonThing) throws JSONException {
    if (jsonThing instanceof JSONArray) {
        final ArrayList<Object> list = new ArrayList<>();

        final JSONArray jsonArray = (JSONArray) jsonThing;
        final int l = jsonArray.length();
        for (int i = 0; i < l; ++i) list.add(jsonThingToAppropriateJavaObject(jsonArray.get(i)));
        return list;
    }

    if (jsonThing instanceof JSONObject) {
        final HashMap<String, Object> map = new HashMap<>();

        final Iterator<String> keysItr = ((JSONObject) jsonThing).keys();
        while (keysItr.hasNext()) {
            final String key = keysItr.next();
            map.put(key, jsonThingToAppropriateJavaObject(((JSONObject) jsonThing).get(key)));
        }
        return map;
    }

    if (JSONObject.NULL.equals(jsonThing)) return null;

    return jsonThing;
}

ขอขอบคุณ@Vikas Gupta


0

ตัวแยกวิเคราะห์ต่อไปนี้อ่านไฟล์แยกวิเคราะห์ลงในทั่วไปJsonElement, ใช้ Google ของJsonParser.parseวิธีการและแล้วแปลงรายการทั้งหมดใน JSON สร้างเป็น Java พื้นเมืองหรือList<object>Map<String, Object>

หมายเหตุ : โค้ดข้างล่างนี้จะตามออกVikas Gupta 's คำตอบ

GsonParser.java

import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonPrimitive;

public class GsonParser {
    public static void main(String[] args) {
        try {
            print(loadJsonArray("data_array.json", true));
            print(loadJsonObject("data_object.json", true));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void print(Object object) {
        System.out.println(new GsonBuilder().setPrettyPrinting().create().toJson(object).toString());
    }

    public static Map<String, Object> loadJsonObject(String filename, boolean isResource)
            throws UnsupportedEncodingException, FileNotFoundException, JsonIOException, JsonSyntaxException, MalformedURLException {
        return jsonToMap(loadJson(filename, isResource).getAsJsonObject());
    }

    public static List<Object> loadJsonArray(String filename, boolean isResource)
            throws UnsupportedEncodingException, FileNotFoundException, JsonIOException, JsonSyntaxException, MalformedURLException {
        return jsonToList(loadJson(filename, isResource).getAsJsonArray());
    }

    private static JsonElement loadJson(String filename, boolean isResource) throws UnsupportedEncodingException, FileNotFoundException, JsonIOException, JsonSyntaxException, MalformedURLException {
        return new JsonParser().parse(new InputStreamReader(FileLoader.openInputStream(filename, isResource), "UTF-8"));
    }

    public static Object parse(JsonElement json) {
        if (json.isJsonObject()) {
            return jsonToMap((JsonObject) json);
        } else if (json.isJsonArray()) {
            return jsonToList((JsonArray) json);
        }

        return null;
    }

    public static Map<String, Object> jsonToMap(JsonObject jsonObject) {
        if (jsonObject.isJsonNull()) {
            return new HashMap<String, Object>();
        }

        return toMap(jsonObject);
    }

    public static List<Object> jsonToList(JsonArray jsonArray) {
        if (jsonArray.isJsonNull()) {
            return new ArrayList<Object>();
        }

        return toList(jsonArray);
    }

    private static final Map<String, Object> toMap(JsonObject object) {
        Map<String, Object> map = new HashMap<String, Object>();

        for (Entry<String, JsonElement> pair : object.entrySet()) {
            map.put(pair.getKey(), toValue(pair.getValue()));
        }

        return map;
    }

    private static final List<Object> toList(JsonArray array) {
        List<Object> list = new ArrayList<Object>();

        for (JsonElement element : array) {
            list.add(toValue(element));
        }

        return list;
    }

    private static final Object toPrimitive(JsonPrimitive value) {
        if (value.isBoolean()) {
            return value.getAsBoolean();
        } else if (value.isString()) {
            return value.getAsString();
        } else if (value.isNumber()){
            return value.getAsNumber();
        }

        return null;
    }

    private static final Object toValue(JsonElement value) {
        if (value.isJsonNull()) {
            return null;
        } else if (value.isJsonArray()) {
            return toList((JsonArray) value);
        } else if (value.isJsonObject()) {
            return toMap((JsonObject) value);
        } else if (value.isJsonPrimitive()) {
            return toPrimitive((JsonPrimitive) value);
        }

        return null;
    }
}

FileLoader.java

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.Scanner;

public class FileLoader {
    public static Reader openReader(String filename, boolean isResource) throws UnsupportedEncodingException, FileNotFoundException, MalformedURLException {
        return openReader(filename, isResource, "UTF-8");
    }

    public static Reader openReader(String filename, boolean isResource, String charset) throws UnsupportedEncodingException, FileNotFoundException, MalformedURLException {
        return new InputStreamReader(openInputStream(filename, isResource), charset);
    }

    public static InputStream openInputStream(String filename, boolean isResource) throws FileNotFoundException, MalformedURLException {
        if (isResource) {
            return FileLoader.class.getClassLoader().getResourceAsStream(filename);
        }

        return new FileInputStream(load(filename, isResource));
    }

    public static String read(String path, boolean isResource) throws IOException {
        return read(path, isResource, "UTF-8");
    }

    public static String read(String path, boolean isResource, String charset) throws IOException {
        return read(pathToUrl(path, isResource), charset);
    }

    @SuppressWarnings("resource")
    protected static String read(URL url, String charset) throws IOException {
        return new Scanner(url.openStream(), charset).useDelimiter("\\A").next();
    }

    protected static File load(String path, boolean isResource) throws MalformedURLException {
        return load(pathToUrl(path, isResource));
    }

    protected static File load(URL url) {
        try {
            return new File(url.toURI());
        } catch (URISyntaxException e) {
            return new File(url.getPath());
        }
    }

    private static final URL pathToUrl(String path, boolean isResource) throws MalformedURLException {
        if (isResource) {
            return FileLoader.class.getClassLoader().getResource(path);
        }

        return new URL("file:/" + path);
    }
}

0

นี่เป็นคำถามเก่าและอาจเกี่ยวข้องกับใครบางคน
สมมติว่าคุณมีสตริง HashMap hashและ JsonObjectjsonObjectJSONObject

1) กำหนดรายการคีย์
ตัวอย่าง:

ArrayList<String> keyArrayList = new ArrayList<>();  
keyArrayList.add("key0");   
keyArrayList.add("key1");  

2) การสร้างห่วง foreach เพิ่มhashจากjsonObjectที่มี:

for(String key : keyArrayList){  
    hash.put(key, jsonObject.getString(key));
}

นั่นเป็นวิธีการของฉันหวังว่ามันจะตอบคำถาม


-1

ลองนึกภาพคุณมีรายการอีเมลเหมือนด้านล่าง ไม่ จำกัด ภาษาการเขียนโปรแกรมใด ๆ

emailsList = ["abc@gmail.com","def@gmail.com","ghi@gmail.com"]

ต่อไปนี้คือรหัส JAVA - สำหรับการแปลง json เป็น map

JSONObject jsonObj = new JSONObject().put("name","abc").put("email id",emailsList);
Map<String, Object> s = jsonObj.getMap();

3
Java เวอร์ชันใด (6/7/8/9) รุ่นใด (SE / EE / อื่น ๆ ) JSONObjectรหัสของคุณเป็นของแพ็คเกจอะไร?
Abhishek Oza

-1

การใช้json-simpleคุณสามารถแปลงข้อมูล JSON เป็น Map และ Map เป็น JSON

try
{
    JSONObject obj11 = new JSONObject();
    obj11.put(1, "Kishan");
    obj11.put(2, "Radhesh");
    obj11.put(3, "Sonal");
    obj11.put(4, "Madhu");

    Map map = new  HashMap();

    obj11.toJSONString();

    map = obj11;

    System.out.println(map.get(1));


    JSONObject obj12 = new JSONObject();

    obj12 = (JSONObject) map;

    System.out.println(obj12.get(1));
}
catch(Exception e)
{
    System.err.println("EROR : 01 :"+e);
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.