今天改软件的bug需要把json字符串解析出来,过程重要将object转换成map
1.object转换成map
for (int i = 0; i < ja2.size(); i++) {
JSONObject jo = ja2.getJSONObject(i);
Map<String, String> map = new HashMap<>();
Iterator it = jo.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = (Map.Entry<String, Object>) it.next();
map.put(entry.getKey(), (String) entry.getValue());
}
String blockId = map.get("BlockId");
ja2为一个JSONArray对象。
[{“jobName”:“啊啊啊”,“BlockId”:“123”,“className”:“job”,“style”:“left: 50px; border-color: rgb(204, 204, 204);”},{“jobName”:“不不不”,“BlockId”:“456”,“className”:“job2”,“style”:“left: 277px; top: 101px; border-color: red;”}]
解析的结果为将这个jobName,BlockId,className,style和对应的值放在map中。
2.String和map的转换
public static void main(String[] args) {
String string = new String("{jobName:aaa}");
System.out.println(string);
Map<String,String> map = stringToMap(string);
System.out.println(map);
String name = map.get("jobName");
System.out.println(name);
}
public static Map<String,String> stringToMap(String string){
string=string.substring(1, string.length()-1); //''jsonName:aaa''
String[] strs=string.split(","); //[jsonName:aaa]
Map<String,String> map = new HashMap<String, String>();
for (String strings : strs) {
String key=strings.split(":")[0]; //''jsonName''
String value=strings.split(":")[1]; //''aaa''
map.put(key, value);
}
return map;
}
我觉得使用的比较巧妙的地方是strings.split("😊[0];