Package com.iqc.app.qc.common.util;
Import java.util.ArrayList;
Import Java.util.HashMap;
Import java.util.List;
Import Java.util.Map;
public class Jsontomap {
public static map<string,string> Tomap (String jsonstring) {arraylist<string> ListKey = new Arraylist<> ;(); arraylist<string> ListValue = new arraylist<> (); int index = 0; ReadKey (listkey,listvalue,index,jsonstring); map<string, string> map = new hashmap<> (); for (int i = 0; I<listkey.size (); i++) {String key = null; String value = null; if (Listkey.get (i). CharAt (0) = = ' "') {String s = listkey.get (i); Key = S.substring (1,s.length ()-1); }else {key = Listkey.get (i); } if (Listvalue.get (i). CharAt (0) = = ' "') {String s = listvalue.get (i); Value = S.substring (1,s.length ()-1); }else {value = Listvalue.get (i); } map.put (Key,value); } return map;} public static void ReadKey (list<string> listkey,list<string> listvalue, int index, String jsonstring) {int Flag = 0; StringBuilder StringbuiLder = new StringBuilder (); for (int i = index; i<jsonstring.length (); i++) {Char charAt = Jsonstring.charat (i); if (charAt = = ' ") {flag = flag + 1; } if (flag = = 1) {stringbuilder.append (Jsonstring.charat (i)); } if (flag = = 2) {Listkey.add (stringbuilder.tostring (). substring (1,stringbuilder.length ())); ReadValue (listkey,listvalue,i+1,jsonstring); Return }}}public static void ReadValue (list<string> listkey,list<string> listvalue,int index, String jsonstring) {int flag1= 0; int flag2 = 0; int flag3 = 0; int flag4 = 0; StringBuilder StringBuilder = new StringBuilder (); for (int i = index; i<jsonstring.length (); i++) {Char charAt = Jsonstring.charat (i); if (charAt = = ' "') {Flag1 = Flag1 + 1; } if (charAt = = ', ') {Flag2 = Flag2 + 1; } if (charAt = = ' {') {Flag3 = flag3 + 1; } if (charAt = = '} ') {Flag4 = Flag4 + 1; } stringbuilder.append (Jsonstring.charat (i)); if (Flag3 > 0 && flag4 = = flag3) {Listvalue.add (stringbuilder.tostring (). substring (1,STRINGBUILDER.L Ength ())); ReadKey (listkey,listvalue,i,jsonstring); Return } if (Flag3 = = 0 && Flag1 = = 2) {Listvalue.add (stringbuilder.tostring (). substring (1,stringbuilde R.length ())); ReadKey (listkey,listvalue,i+1, jsonstring); Return } if (Flag3 = = 0 && Flag1 = = 2) {Listvalue.add (stringbuilder.tostring (). substring (1,stringbuilder . Length ())); ReadKey (listkey,listvalue,i+1, jsonstring); Return } if (Flag3 = = 0 && Flag1 = = 0 && (Flag2 = = 1 | | flag4 = = 1)) {Listvalue.add (Stringbuilde R.tostring (). substring (1,stringbuilder.length ()-1)); ReadKey (listkey,listvalue,i+1, jsonstring); Return } }}
}
JSON string to Java map<string,string>