How to convert hashmap to JSON object in Java

前端 未结 29 2519
谎友^
谎友^ 2020-11-22 11:20

How to convert or cast hashmap to JSON object in Java, and again convert JSON object to JSON string?

29条回答
  •  忘掉有多难
    2020-11-22 11:36

    Late to the party but here is my GSON adhoc writer for serializing hashmap. I had to write map of key-value pairs as json string attributes, expect one specific to be integer type. I did not want to create custom JavaBean wrapper for this simple usecase.

    GSON JsonWriter class is easy to use serializer class containing few strongly typed writer.value() functions.

    // write Map as JSON document to http servlet response
    Map sd = DAO.getSD(123);
    res.setContentType("application/json; charset=UTF-8");
    res.setCharacterEncoding("UTF-8");
    JsonWriter writer = new JsonWriter(new OutputStreamWriter(res.getOutputStream(), "UTF-8"));
    writer.beginObject();
    for(String key : sd.keySet()) {
        String val = sd.get(key);
        writer.name(key);
        if (key.equals("UniqueID") && val!=null)
            writer.value(Long.parseLong(val));
        else
            writer.value(val);
    }
    writer.endObject();
    writer.close();
    

    If none of the custom types be needed I could have just use toJson() function. gson-2.2.4.jar library is just under 190KB without any brutal dependencies. Easy to use on any custom servlet app or standalone application without big framework integrations.

    Gson gson = new Gson(); 
    String json = gson.toJson(myMap); 
    

提交回复
热议问题