// 取值
Object dataOBJ = request.getData();
String dataStr = JSON.toJSONString(dataOBJ);
HashMap<String, Object> dataMap = JSON.parseObject(dataStr, new TypeReference<HashMap<String, Object>>() {});
默认可以使用JSON.parseObject将字符串转成Map,但是如果json中有多个key-value,则转换后的顺序可能颠倒。如下
public static void main(String[] args) {
String content = "{\"text1\":\"123\",\"text2\":\"456\",\"text3\":\"789\"}";
Map paraMap = JSON.parseObject(content);
System.out.println(paraMap.toString());
}
运行结果:
{"text3":"789","text1":"123","text2":"456"}
使用JSON.parseObject(content, LinkedHashMap.class, Feature.OrderedField)可以解决这个问题
public static void main(String[] args) {
String content = "{\"text1\":\"123\",\"text2\":\"456\",\"text3\":\"789\"}";
Map paraMap = JSON.parseObject(content, LinkedHashMap.class, Feature.OrderedField);
System.out.println(paraMap.toString());
}
运行结果:
{text1=123, text2=456, text3=789}