2012-10-10 17 views
5

mam Map<String,String> w java tak:Konwersja Map <String, String> w json

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

Używam simple json parser przeanalizować tę mapę do obiektu JSON.

Próbowałem:

Object json = JSONValue.parse(entry.getKey()); 

Ale pojawia się komunikat o błędzie:

Object json = JSONValue.parse(entry.getKey()); 
        ^
method JSONValue.parse(String) is not applicable 
    (actual argument Map<String,String> cannot be converted to String by method invocation conversion) 
method JSONValue.parse(Reader) is not applicable 
    (actual argument Map<String,String> cannot be converted to Reader by method invocation conversion) 

to możliwe do konwersji Map<String,String> do JSON?

+0

masz zmęczony GSON http://code.google.com/p/google-gson/ – Abubakkar

+1

Wystarczy popatrzeć na przykład 1.4 na tej stronie: http: // code .google.com/p/json-simple/wiki/EncodingExamples # Example_1-4 _-_ Encode_a_JSON_object _-_ Using_Map_and_streaming –

Odpowiedz

8

Wystarczy popatrzeć na przykład 1.4 na tej stronie 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); 
11

można także spróbować coś takiego z Gson Biblioteka:

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

} 

Spojrzenie wyjście tak:

Output

0

Spróbuj tego. Ale trzeba bibliotekę gson:

Map<String, Object> map = new HashMap<>(); 
String value = new Gson().toJson(map); 
+0

To była dla mnie odpowiedź! – xBACP

Powiązane problemy