Converting Map into json

前端 未结 4 1877
长情又很酷
长情又很酷 2021-02-15 16:40

I have Map in java like this :

{card_switch=Master, issuing_bank=ICCI, card_Type=DebitCard}

I\'m using the s

相关标签:
4条回答
  • 2021-02-15 17:13

    You can also try something like this with Gson Library:

    package com.stackoverflow.works;
    
    import java.lang.reflect.Type;
    import java.util.HashMap;
    import java.util.Map;
    
    import com.google.gson.Gson;
    import com.google.gson.reflect.TypeToken;
    
    /*
     * @Author: sarath_sivan
     */
    
    public class MapToJsonConverter {
    
        /*
         * @Description: Method to convert Map to JSON String
         * @param: map Map<String, String> 
         * @return: json String
         */
        public static String convert(Map<String, String> map) {
            Gson gson = new Gson();
            String json = gson.toJson(map);
            return json;
        }
    
        /*
         * @Description: Method to convert JSON String to Map
         * @param: json String 
         * @return: map Map<String, String> 
         */
        public static Map<String, String> revert(String json) {
            Gson gson = new Gson();
            Type type = new TypeToken<Map<String, String>>(){}.getType();
            Map<String, String> map = gson.fromJson(json, type);
            return map;
        }
    
        /*
         * @Description: Method to print elements in the Map
         * @param: map Map<String, String> 
         * @return: void 
         */
        public static void printMap(Map<String, String> map) {
            for (String key : map.keySet()) {
                System.out.println("map.get(\"" + key + "\") = " + map.get(key));
            }
        }
    
        /*
         * @Description: Method to print the JSON String
         * @param: json String 
         * @return: void 
         */
        public static void printJson(String json) {
            System.out.println("json = " + json);
        }
    
        /*
         * @Description: Main method to test the JSON-MAP convert/revert logic
         */
        public static void main(String[] args) {
            Map<String, String> paymentCards = new HashMap<String, String>();
            paymentCards.put("card_switch", "Master");
            paymentCards.put("issuing_bank", "ICCI");
            paymentCards.put("card_Type", "DebitCard");
    
            String json = convert(paymentCards); //converting Map to JSON String
            System.out.println("Map to JSON String");
            System.out.println("******************");
            printJson(json); 
    
            System.out.println();
    
            paymentCards = revert(json); //converting JSON String to Map
            System.out.println("JSON String to Map");
            System.out.println("******************");
            printMap(paymentCards);
        }
    
    }
    

    The output look like this:

    Output

    0 讨论(0)
  • 2021-02-15 17:18

    Try this. But do you need the gson library:

    Map<String, Object> map = new HashMap<>();
    String value = new Gson().toJson(map);
    
    0 讨论(0)
  • 2021-02-15 17:23

    It should be possible, but i think you hold it the wrong way around: parse will PARSE json-text content, and provide you with an Java-equivalent ("decoding")

    look at the sample on the homepage: http://code.google.com/p/json-simple/wiki/EncodingExamples#Example_1-3_-_Encode_a_JSON_object_-_Using_Map

    0 讨论(0)
  • 2021-02-15 17:33

    Have a look at example 1.4 on this page http://code.google.com/p/json-simple/wiki/EncodingExamples#Example_1-4_-_Encode_a_JSON_object_-_Using_Map_and_streaming:

     Map obj=new LinkedHashMap();
       obj.put("name","foo");
       obj.put("num",new Integer(100));
       obj.put("balance",new Double(1000.21));
       obj.put("is_vip",new Boolean(true));
       obj.put("nickname",null);
       StringWriter out = new StringWriter();
       JSONValue.writeJSONString(obj, out);
       String jsonText = out.toString();
       System.out.print(jsonText);
    
    0 讨论(0)
提交回复
热议问题