【发布时间】:2018-04-19 08:54:01
【问题描述】:
您好,我一直在尝试让正则表达式替换 JSON 字符串键名中的点 (.)。我不想使用 JSONObject 将字符串转换为 JSON。
所以对于像这样的 JSON 字符串:
{
"data": {
"property": "0",
"property_value": "0",
"property": "0",
"pro.per.ty": "0",
"pr.op.er.ty": "0.0",
"property": "0.0",
"proper_ty": "0.0",
"group": "oneGroup",
"newprop": "0",
"total": {
"0": "0",
"99": "0",
"100": "0",
"25": "0",
"90": "0",
"50": "0",
"95": "0",
"99.5": "0",
"75": "0"
},
"requests": "0"
}
}
我希望最终的字符串是
{
"data": {
"property": "0",
"property_value": "0",
"property": "0",
"pro_per_ty": "0",
"pr_op_er_ty": "0.0",
"property": "0.0",
"proper_ty": "0.0",
"group": "oneGroup",
"newprop": "0",
"total": {
"0": "0",
"99": "0",
"100": "0",
"25": "0",
"90": "0",
"50": "0",
"95": "0",
"99_5": "0",
"75": "0"
},
"requests": "0"
}
}
解决方案需要高性能,时间低于 10 毫秒。
我可以使用表达式 "(\w*\.\w*)+\": 捕获带有 (.) 的键,但我无法正确获取子组以执行替换。
【问题讨论】:
-
所以您不只是想用下划线替换 all 点的实例,而只想替换键中的点?
-
我不想使用 JSONObject 将字符串转换为 JSON。 为什么?