একটি JSON স্ট্রিংকে একটি হ্যাশম্যাপে রূপান্তর করুন


156

আমি জাভা ব্যবহার করছি, এবং আমার একটি স্ট্রিং রয়েছে যা জেএসএন:

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

তারপরে জাভাতে আমার মানচিত্র:

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

আমি JSONObject থেকে সমস্ত ডেটা সেই হাশম্যাপে সঞ্চয় করতে চাই।

কেউ কি এর জন্য কোড সরবরাহ করতে পারে? আমি org.jsonগ্রন্থাগারটি ব্যবহার করতে চাই ।


আমি জানি না কেন json.org জেএসওনবজেক্টের ব্যক্তিগত মানচিত্রের সদস্য ভেরিয়েবলের জন্য কোনও গেটর নেই ...
ভিজমানিলো

1
Kotlin মধ্যে সমাধান এই চেক করুন ব্যবহার gson stackoverflow.com/a/53763826/8052227
AndyGeek

তবে কেন JSONObjectযখন জিজ্ঞাসা করা হচ্ছে যে এটি অতিমাত্রায় প্রকারের মনে হয় যা একেবারেই প্রয়োজন হয় না? Mapজ্যাকসন, জিএসওএন, জেনসন, মোশি ইত্যাদির মতো ভাল জাভা জেএসওএন লাইব্রেরি ব্যবহার করে জেএসনকে পড়া সহজ is তাহলে কেন ওপি org.json ব্যবহার করতে "চায়"?
স্ট্যাক্সমান

1
@ স্টেক্সম্যান, সংগঠন নীতির কারণে, কখনও কখনও আপনি কেবল ইনবিল্ট লাইব্রেরি ব্যবহার করতে বাধ্য হন। অতএব, আমাকে কেবল org.json ব্যবহার করতে হয়েছিল।
বিকাশ গুপ্ত

@ ভিকাসগুপ্ত ঠিক আছে, যদি এই জাতীয় প্ল্যাটফর্মে চলমান থাকে (সম্ভবত অ্যান্ড্রয়েড)
স্ট্যাকসমান ২৯

উত্তর:


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
আপনি সেই ব্যতিক্রমগুলি নিরাপদে ধরতে পারেন এবং পরিবর্তে রানটাইম ব্যতিক্রম বা দৃ throw়তা ফেলতে পারেন। আপনি ইতিমধ্যে পরীক্ষা করেছেন যে কীটি বিদ্যমান এবং আপনার যে সূচিটি পরীক্ষা করে তা অ্যারেটির একটি মান রয়েছে। এছাড়াও, জেসসন! = নাল যখন দু'বার তৈরি হয়েছে তখন নাল পরীক্ষা করার আগে retMap তৈরি করার কোনও বুদ্ধি নেই। ভাল লাগছে যদিও।
ব্যবহারকারী1122069

কি আমদানি / বাহ্যিক lib এই ব্যবহার করে? গ্রহণটি JSONArray এবং JSONObject দ্রবীভূত করতে পারে না
গিউউর

2
@ জিউউর, org.json ব্যবহার করুন।
বিকাশ গুপ্ত

133

জিসন ব্যবহার করে , আপনি নিম্নলিখিতগুলি করতে পারেন:

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

8
তবে আমি জিএসন লাইব্রেরিটি ব্যবহার করতে চাই না। আমাকে কেবল "org.json" লিয়ারি 'ব্যবহার করার অনুমতি দেওয়া হয়েছে।
বিকাশ গুপ্ত

কিভাবে এটি পড়তে jsonString? jsonStringআর জসন অবজেক্টের মধ্যে পার্থক্য কী?
স্ম্যাথহেনগ্লিশ

@ আপনি কি অন্য উপায়ে এটি করতে পারেন?
ধারালো এজ

@ধারালো কিনারা. আপনি ভালো মানে না: 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();

এই সমাধানটি বেছে নিন। এছাড়াও কার্যকর, যখন আপনার জেএসএন স্ট্রিংটি বোঝানোর জন্য জটিল তথ্য প্রকারের তালিকাগুলির মতো বোঝানো হয়েছে, এখানে
mania_device

যেহেতু আমি আমার অ্যাপ্লিকেশনটিতে জ্যাকসন গ্রন্থাগারটি আগেই ব্যবহার করছিলাম তাই এটিই আমার সমস্যার সেরা উত্তর answer ধন্যবাদ :)
imans77

7

জেএসআর 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;
    }
}

এটি আমাকে জসনঅবজেক্ট এবং জেএসএনওজেক্টের মধ্যে পার্থক্য করার ক্ষেত্রে ত্রুটি দিচ্ছে।
sirvon

@ সিরভন আপনি কি পরিষ্কার করতে পারবেন? জেএসআর 353 কোডটিতে একটি "জেএসএনওবজেক্ট" নেই। আপনি 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
কিভাবে আপনার উত্তর এই প্রশ্ন করার জন্য অন্য বিদ্যমান উত্তর উন্নত না: যদি আপনি কিছু ব্যাখ্যা যোগ এটা সহায়ক হবে
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;
    }

জেএসএন অ্যারে তালিকাতে রূপান্তর করা

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

    }

গুগল.সাগন হ্যাশম্যাপে।


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

আপনি জসন অবজেক্টে রূপান্তর করতে গুগল জিএসএন লাইব্রেরি ব্যবহার করতে পারেন।

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

জ্যাকসনের মতো অন্যান্য গ্রন্থাগারও উপলব্ধ।

এটি এটিকে কোনও মানচিত্রে রূপান্তর করবে না। তবে আপনি যা চান তা করতে পারেন।


কোনও রেপার লাইব্রেরি ব্যবহার না করে রূপান্তর করাও খুব সহজ।
বিকাশ গুপ্ত

2

যদি আপনি পুনরাবৃত্তি ঘৃণা করেন - একটি জেসন স্ট্রিংকে মানচিত্রের তালিকায় রূপান্তর করতে একটি স্ট্যাক এবং জাভ্যাক্স.জেসন ব্যবহার করে:

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

ধন্যবাদ @ ভিকাস গুপ্ত


0

নিম্নলিখিত পার্সার একটি ফাইল পড়েন JsonElement, গুগলের JsonParser.parseপদ্ধতি ব্যবহার করে জেনেরিকে পার্স করেন এবং তারপরে উত্পন্ন জেএসওএন-এর সমস্ত আইটেমকে একটি স্থানীয় জাভা 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

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 ডেটা মানচিত্র এবং মানচিত্রে জেএসএনে রূপান্তর করতে পারেন।

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.