एक JSON स्ट्रिंग को एक HashMap में बदलें


156

मैं जावा का उपयोग कर रहा हूं, और मेरे पास एक स्ट्रिंग है जो JSON है:

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

तब जावा में मेरा नक्शा:

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

मैं उस HashMap में JSONObject से सभी डेटा संग्रहीत करना चाहता हूं।

क्या कोई इसके लिए कोड प्रदान कर सकता है? मैं org.jsonपुस्तकालय का उपयोग करना चाहता हूं ।


मुझे नहीं पता कि json.org JSONObject के पास प्राइवेट मैप मेंबर वेरिएबल के लिए गेट्टर क्यों नहीं है ...
vzamanillo

1
कोटलिन में समाधान gson stackoverflow.com/a/53763826/8052227
एंडीगीक

लेकिन सवाल यह क्यों पूछ रहा है JSONObjectकि जब ऐसा लगता है कि ज़रूरत से ज़्यादा ज़रूरत नहीं है? Mapजैक्सन के रूप में पढ़ना जैक्सन, जीएसओएन, गेंसन, मोशी जैसे किसी भी अच्छे जावा जेन्स लाइब्रेरी की संख्या का उपयोग करके सरल है। तो क्यों ओपी "चाहता है" org.json का उपयोग करने के लिए?
StaxMan

1
@staxMan, संगठन नीति के कारण, कभी-कभी आप केवल इनबिल्ट लाइब्रेरी का उपयोग करने के लिए बाध्य होते हैं। इसलिए, मुझे केवल org.json का उपयोग करना था।
विकास गुप्ता

@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
आप उन अपवादों को सुरक्षित रूप से पकड़ सकते हैं और इसके बजाय रनटाइम अपवाद या जोर फेंक सकते हैं। आपने पहले ही जाँच लिया है कि कुंजी मौजूद है और यह कि आपके द्वारा चेक किए जाने वाले इंडेक्स पर सरणी का मान है। इसके अलावा, शून्य के लिए जाँच करने से पहले रेटपॉप बनाने में कोई मतलब नहीं है क्योंकि इसे दो बार बनाया जाता है जब json! = Null। हालांकि अच्छा लग रहा है।
user1122069

क्या आयात / बाह्य lib इसका उपयोग करता है? ग्रहण JSONArray और JSONObject को भंग नहीं कर सकता
7:14 पर Gewure

2
@ ठीक है, org.json का उपयोग करें।
विकास गुप्ता

133

GSon का उपयोग करते हुए , आप निम्न कार्य कर सकते हैं:

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

8
लेकिन मैं न तो GSON लाइब्रेरी का उपयोग करना चाहता हूं। मुझे केवल "org.json" लिररी का उपयोग करने की अनुमति है।
विकास गुप्ता

इसे कैसे पढ़ें jsonString? jsonStringऔर वस्तु के बीच अंतर क्या है ?
smatthewenglish

@ क्या आप इसे अन्य तरीके से कर सकते हैं?
तेज धार

@तेज धार। क्या आपका मतलब इस तरह है new Gson().toJson(map);:?
तून बोर्गर्स

क्या यह केवल आदिम वस्तुओं में अनुक्रमित होता है? कैसे के बारे में है अगर एक तारीख मैं मानचित्र में भी क्रमबद्ध चाहता हूँ?
जॉन अर्नेस्ट गुआडालूपे

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

यहां विकास का कोड 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 के बीच अंतर करने में त्रुटियाँ दे रहा है।
सिरवन

क्या आप स्पष्ट कर सकते हैं? JSR 353 कोड में "JSONObject" नहीं है। मैं अनुशंसा नहीं करता कि आप JSON प्रौद्योगिकियों को मिलाएं। एक या दूसरे को चुनें।
कोलबन

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
यदि आप कुछ स्पष्टीकरण जोड़ते हैं तो यह मददगार होगा: इस सवाल के अन्य मौजूदा उत्तरों पर आपका उत्तर कैसे बेहतर होता है
आर्टेम

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 Array को सूची में बदलना

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

आप इसके लिए जैक्सन एपीआई का उपयोग कर सकते हैं:

    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

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

जैक्सन के लिए मावेन निर्भरता :

<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>

आशा है कि यह मदद करेगा। मुबारक कोडिंग :)


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

Json ऑब्जेक्ट को कन्वर्ट करने के लिए आप google gson लाइब्रेरी का उपयोग कर सकते हैं।

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

जैक्सन जैसे अन्य पुस्तकालय भी उपलब्ध हैं।

यह इसे नक्शे में नहीं बदलेगा। लेकिन आप वे सभी चीजें कर सकते हैं जो आप चाहते हैं।


किसी भी रैपर लाइब्रेरी का उपयोग किए बिना कन्वर्ट करना भी बहुत आसान है।
विकास गुप्ता

2

यदि आप पुनरावृत्ति से घृणा करते हैं - एक स्टेक और javax.json का उपयोग करके Json स्ट्रिंग को मैप्स की सूची में बदलने के लिए:

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

2

मैंने सिर्फ गेसन का इस्तेमाल किया

HashMap<String, Object> map = new Gson().fromJson(json.toString(), HashMap.class);

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 गुप्ता


0

निम्न पार्सर एक फ़ाइल पढ़ता है, इसे JsonElementGoogle की JsonParser.parseविधि का उपयोग करते हुए एक सामान्य में पार्स करता है , और फिर उत्पन्न JSON में सभी वस्तुओं को एक मूल जावा List<object>या में परिवर्तित करता है Map<String, Object>

नोट : नीचे दिया गया कोड विकास गुप्ता के उत्तर पर आधारित है ।

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

यह एक पुराना सवाल है और शायद अभी भी किसी से संबंधित है।
मान लीजिए कि आपके पास स्ट्रिंग hashहैशपॉप और JsonObject हैjsonObject

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 को मानचित्र में परिवर्तित करने के लिए

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

3
जावा का कौन सा संस्करण (6/7/8/9)? कौन सा संस्करण (एसई / ईई / अन्य)? JSONObjectआपके कोड का कौन सा पैकेज है ?
अभिषेक ओझा

-1

Json-simple का उपयोग करके आप डेटा JSON को मैप और मैप से 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);
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.