gpt4 book ai didi

java - 解析 map JSON 值并重新插入回 map

转载 作者:行者123 更新时间:2023-12-02 02:04:44 26 4
gpt4 key购买 nike

我正在尝试解析 map 并更新其中的值...这是我制作 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 创建一个 map 。

我这样做是因为我希望获得值(value)

{"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 字符串中,然后插入到原始映射中。

最佳答案

所以我实现了一个解决方案,尽管我不确定它是最干净、最直接的。

我仍然从 JSON 映射中的“errorMessage”键的值中获取了子字符串。

然后,我用新编辑的 JSON 替换了该键的值。

然后我将 Json Map 转换为字符串。

然后我将新的 JSON 字符串添加到原始 HashMap 的值

String[] parse;
@PostMapping(value = "/")
public String payloader(@RequestBody String params ) throws IOException{
LOGGER.debug("code is hitting");
String key,key2;
String value,value2,value3;
Map<String, String> predictionFeatureMap = mockconfig.getPredictionFeatureMap();
if(parse.length!=18) {

key = "Not_enough_parameters";
value = predictionFeatureMap.get(key);
Map<String,Object> resultJsonObj = new Gson().fromJson(value, Map.class);
key2 = "errorMessage";
value2 = (String) resultJsonObj.get(key2);
value3 = value2.substring(0,61) +parse.length+value2.substring(62);
resultJsonObj.replace(key2, value3);
String updatedResponse = new Gson().toJson(resultJsonObj,Map.class);
value = updatedResponse;

}
else {
key = params;
value = predictionFeatureMap.get(key);
}
return value;

关于java - 解析 map JSON 值并重新插入回 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57362117/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com