【发布时间】:2017-05-02 07:36:54
【问题描述】:
我正在尝试将下面的 json 解析为 java 对象。我无法解析组合键和值。
"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 中。
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);
}
}
我需要将其转换为如下格式的地图
键:TXN_TYPE,值:SB
key : TXN_DATE , value : {Key : 0, Value : 0170501} 等等
key : TXN_AMT , value : {Key : 0, Value : 10.00} 等等
请提供一些建议。
【问题讨论】:
-
你试过什么?你被困在哪里了?
-
什么是
computes?向txn询问它的密钥不是更好吗? -
我试图循环我在上面提供的代码的 json 对象。但我无法遍历动态键
-
value : {Key : 0, Value : 0170501}是代表字符串还是嵌套映射?如果它是一个字符串,“等等”看起来如何?如果是地图,您希望如何将其存储在Map<String,String>中? -
@shmosel。它应该是嵌套地图。所以我可以轻松地将 txn 日期和 txn amt 与键 [0,1,2...] 匹配。