gpt4 book ai didi

java - 重复字符串替换

转载 作者:行者123 更新时间:2023-11-30 03:49:29 25 4
gpt4 key购买 nike

我有一个从 JSON 对象创建的字符串,如下所示

{
"id" : "112233",
"someElement" : [ {
"map" : {
"123" : [ {..}]
},
"map" : {
"124" :[ {..}]
}
}]
}

我需要将上面的字符串转换为以下格式。

{
"id" : "112233",
"someElement" : [ {
"123" : {
"element" : [ {..}]
},
"124" : {
"element" :[ {..}]
}
}]
}

我尝试进行字符串替换,当在字符串中找到子字符串“map”时,用其下方的 ID 替换。

String a = jsonString.substring(jsonString.indexOf("map")+16, jsonString.indexOf("map")+19);
String b = jsonString.replace("map", a);

此模式适用于第一次出现“map”字符串。但相同的 ID 值替换了第二个“map”字符串。如何将后续出现的“map”字符串替换为其各自的 ID。

请问还有什么更好的办法吗?感谢任何反馈。谢谢!

最佳答案

JSON 不是一种常规语言,因此尝试使用正则表达式进行这种更改将是脆弱的;输入中语法上无关紧要的变化很容易使基于正则表达式的解决方案感到困惑。

由于此示例违反了保持对象成员名称唯一的 JSON 建议,因此许多 JSON 解析器将难以解析它,引发异常或忽略某些成员。然而,可能有解析器可以处理它。如果没有,很容易编写自己的 JSON 解析器来稳健地处理此输入。这样,当空格发生变化时,您的代码就不会中断。

关于java - 重复字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24787808/

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