Below
program converts json string to a map. This program runs only for primitive
types. If json string has complex types like array, nested json objects, it
will not work.
Test.java
import java.util.LinkedHashMap; import java.util.Map; public class Test { public static Map<String, String> getMapFromString(String s) { if (s == null || s.isEmpty()) { return new LinkedHashMap<>(); } Map<String, String> map = new LinkedHashMap<>(); String[] tokens = s.split(","); for (int i = 0; i < tokens.length; i++) { tokens[i] = tokens[i].replace("\"", ""); tokens[i] = tokens[i].replace("{", ""); tokens[i] = tokens[i].replace("}", ""); String[] subparts = tokens[i].split(":"); if (subparts.length == 2) { map.put(subparts[0], subparts[1]); } else { map.put(subparts[0], ""); } } return map; } public static void main(String args[]) { String json = "{\"id\":\"123456\",\"changeToken\":\"token-1234\",\"headerText\":\"\"}"; Map<String, String> map = getMapFromString(json); for (String key : map.keySet()) { System.out.println(key + " : " + map.get(key)); } } }
Output
id : 123456 changeToken : token-1234 headerText :
If
you would like to convert complex json string to map, I would suggest you to
use libraries like gson, Jackson, genson etc.,
You may like
No comments:
Post a Comment