【发布时间】:2019-12-13 04:26:45
【问题描述】:
我正在尝试解析地图并更新其中的值... 这是我制作的 hashmap 的 .txt 文件的内容
第一行是键,JSON 字符串是值。
Not_enough_parameters
{"status": false, "errorMessage": "Payload has incorrect amount of parts: expecting: 18, actual:8", "version": "0.97", "coreName": "Patient_Responsibility"}
这是我的解析代码:
parse = params.split("\\|");
String key;
String value;
String value2;
String key2;
String value3;
Map<String, String> predictionFeatureMap = mockconfig.getPredictionFeatureMap();
if(parse.length!=18) {
key = "Not_enough_parameters";
value = predictionFeatureMap.get(key);
Map<?,?> resultJsonObj = new Gson().fromJson(value, Map.class);
key2 = "errorMessage";
value2 = (String) resultJsonObj.get(key2);
value3 = value2.substring(0,61) +parse.length+value2.substring(62);
}
我正在发送一个名为 params 的有效负载字符串,用“|”分隔分隔符。他们输入必须有 18 个参数(“|”分隔符之间的 18 个值)。我解析输入,如果它没有足够的参数,我会得到包含字符串“Not_enough_paramters”的键,然后得到它的值,即 JSON 字符串。
然后我使用该 JSON 字符串并使用 Gson 创建一个映射。
我这样做是因为我想返回价值
{"status": false, "errorMessage": "Payload has incorrect amount of parts: expecting: 18, actual:(params.length)", "version": "0.97", "coreName": "Patient_Responsibility"}
所以我想更新“实际:”。我从 JSON 映射中获取“errorMessage”的值并使用子字符串获取索引并更改值以更新用户输入的实际参数数量。
我不确定如何将新的 JSON 重新插入到 JSON 映射中的整个 JSON 字符串中,然后再插入到原始映射中。
【问题讨论】:
-
首先你不需要将字符串转换为映射只是为了替换一个参数,你可以通过使用字符串.replace()方法和regx来实现。其次不要更新您的原始地图,因为它会覆盖您的异常模板创建原始地图的副本并用新字符串替换您的密钥并返回新地图
-
@RaviTeja 嘿,我实现了一个解决方案并让它工作了......但不确定它是否有效。
标签: java json parsing hashmap gson