【发布时间】:2020-12-21 12:27:00
【问题描述】:
我有一个返回这种格式的字符串的服务器:
{"success":true,
"visible":false,
"data":
{"ref":"asfdasfsadfaeweatsagsdfsad",
"userRef":"asdfsadfsa","accountType":"REAL",balance":43},
"code":"2200",
"msg":null,
"msgRef":null,
"successAndNotNull":true,
"failedOrNull":false,
"failed":false,
"failedAndNull":false}`
然后我通过这样做提取data:
val jsonObj : Any! = JSONObject(serverResponse.toString()).get("data").toString()
我最终得到了这个字符串:
"{"ref":"safdasfdwaer",
"userRef":"fdgsgdsgdsfg",
"accountType":"REAL",
"balance":43}"
有没有一种有效的方法可以将值提取到 HashMap 中,键在“:”左侧,值在“:”右侧?
我已经在这里看到了答案 (Convert String to Map) 但我不能使用正则表达式
【问题讨论】:
-
我看过这个帖子。 Kotlin 中的 JSONObject(serverResponse.toString()).get("data") 返回数据类型“Any!”这让我无法使用 new ObjectMapper().readValue(JSON_SOURCE, HashMap.class);因为我实际上没有 JSON_SOURCE
-
@JanisLadja 然后将其转换为字符串。
-
然后从String到JSON,还是从String到Json再到Map?
-
JSON_SOURCE 是字符串类型,因此您将把您的字符串传递给新的
ObjectMapper().readValue(String, HashMap.class);并获取地图 -
@JanisLadja 我提出了一个详细描述事物的答案
标签: java string kotlin split hashmap