Library to encode/decode from json to java.util.Map? Library to encode/decode from json to java.util.Map? json json

Library to encode/decode from json to java.util.Map?


You can use Google Gson for that. It has excellent support for Generic types.

Here's an SSCCE:

package com.stackoverflow.q2496494;import java.util.LinkedHashMap;import java.util.Map;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;public class Test {   public static void main(String... args) {        Map<String, String> map = new LinkedHashMap<String, String>();        map.put("key1", "value1");        map.put("key2", "value2");        map.put("key3", "value3");        Gson gson = new Gson();        // Serialize.        String json = gson.toJson(map);        System.out.println(json); // {"key1":"value1","key2":"value2","key3":"value3"}        // Deserialize.        Map<String, String> map2 = gson.fromJson(json, new TypeToken<Map<String, String>>() {}.getType());        System.out.println(map2); // {key1=value1, key2=value2, key3=value3}    }}


JSON-Simple looks relatively easy to use (examples below).

Map to JSON:

  Map map = new HashMap();  map.put("name", "foo");  map.put("nickname", "bar");  String jsonText = JSONValue.toJSONString(map);

JSON to List/Map:

  String s = yourJsonString;  List list = (JSONArray) JSONValue.parse(s);         Map map = (JSONObject) list.get(0);


You can view the site from Json.org for the list of good JSON libraries in Java.

JSon.org's own implementation JSONObject can do just that.From their JavaDoC

 /**     * Construct a JSONObject from a Map.     *      * @param map A map object that can be used to initialize the contents of     *  the JSONObject.     */    public JSONObject(Map map);

you can do

JSONObject json = new JSONObject(map);

To convert JSON String back to object....

String jsonString = "{\"name\" : \"some name\", \"age\" : 10}";JSONObject json = new JSONObject(jsonString);

and you can access values like:

int age = json.getInt("age");

Constructor JavaDoC

Construct a JSONObject from a source JSON text string. This is the most commonly used JSONObject constructor.

Parameters: source A string beginning with { (left brace) and ending with } (right brace).