使用动态键将JSON解析为HashMap [英] Parsing JSON To HashMap With Dynamic Keys
本文介绍了使用动态键将JSON解析为HashMap的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将json以下的内容解析为java对象.我无法解析为组合的键和值.
I am attempting to parse below json to java object. I cannnot able to parse to combined keys and values.
"txn": {
"TXN_TYPE": {
"=": "SB"
},
"TXN_DATE(0)": {
"=": "0170501"
},
"TXN_DATE(1)": {
"=": "0170502"
},
"TXN_DATE(2)": {
"=": "0170503"
},
"TXN_AMT(0)": {
"=": "10.00"
}
"TXN_AMT(1)": {
"=": "20.00"
}
"TXN_AMT(2)": {
"=": "30.00"
}
}
我正在使用org.json.JSONObject进行解析和迭代,并将其存储在HashMap中.
i am using org.json.JSONObject to parse and iterate over it and store it in HashMap.
JSONObject txn= jObject.getJSONObject("txn");
if (txn!= null) {
Map<String,String> map = new HashMap<String,String>();
Iterator iter = txn.keys();
while(iter.hasNext()){
String key = (String)iter.next();
JSONObject valueObj = txn.getJSONObject(key);
String value = valueObj.getString("=");
System.out.println("Response : Key : "+key+ " Value : "+value);
map.put(key,value);
}
}
我需要像下面的格式一样将其转换为地图
I need to convert this as map like below format
键:TXN_TYPE,值:SB
key : TXN_TYPE , value : SB
键:TXN_DATE,值:{键:0,值:0170501},依此类推
key : TXN_DATE , value : {Key : 0, Value : 0170501} and so on
键:TXN_AMT,值:{键:0,值:10.00},依此类推
key : TXN_AMT , value : {Key : 0, Value : 10.00} and so on
请提供一些建议.
推荐答案
您可以尝试执行以下操作:
You can try something like this:
JSONObject txn = jObject.getJSONObject("txn");
if (txn != null) {
Map<String, Object> map = new HashMap<String, Object>();
Iterator iter = txn.keys();
while (iter.hasNext()) {
String key = (String) iter.next();
JSONObject valueObj = txn.getJSONObject(key);
String value = valueObj.getString("=");
String[] keyParams = key.split("[\\(\\)]");
if (keyParams.length > 1) { // it means it contains index
// checking for old map
Map<String, String> innerMap = (Map<String, String>) map.get(keyParams[0]);
if (innerMap == null) {
innerMap = new HashMap<String, String>();
}
innerMap.put(keyParams[1], value);
map.put(keyParams[0], innerMap);
} else {
map.put(key, value);
}
}
}
这篇关于使用动态键将JSON解析为HashMap的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文