我需要修改我的JSON。我想在[
和]
之前删除"
当前请求 :
{"marital-status":"Single","hospitalisation":"["hello", "world"]","ill-health":false,"specialist-condidtions":"["HEADACHE", "PANIC ATTACK"]","smoker":false,"health-concerns":false}
修改请求 :
{"marital-status":"Single","hospitalisation":["hello", "world"],"ill-health":false,"specialist-condidtions":["HEADACHE", "PANIC ATTACK"],"smoker":false,"health-concerns":false}
我尝试使用翻译功能fn:translate(req,'"[','[')
但这取代了我所有的"
以及[
.
如果你有XML在管道中,为什么不直接使用NXSD自动转换为json。
要做到这一点,只要你有 XSD 对于 JSON,那么只需使用 nXSD 组件,转换就会自动发生吗?
https://svgonugu.com/2015/12/27/using-translate-activity-for-xml-to-json/
><rant>
您确实应该修复生成损坏输出的 Java 进程,以确保它生成有效的 JSON。尝试修复损坏的数据是浪费时间,并且违背了使用标准数据格式的目的。当"修复"无法处理所有边缘情况时,它也可能在随机时间失败。</rant>
fn:translate()
没有按照您预期的方式工作的原因是您可能希望它更像是查找/替换完整字符串,但它是基于字符的。第二个参数中的第一个字符将替换为第三个参数中的第一个字符(如果没有相应的字符,则删除),然后是字符串中的每个后续字符。所以,fn:translate(req,'"[','[')
真正的意思是,"将双引号替换为 [ 并将 [ 替换为 nothing"。
为了删除有问题的字符,您可以使用fn:replace()
,它采用正则表达式模式来查找内容,并使用字符串来替换以下内容:
fn:replace(fn:replace(req, '"[', "["), '"]', "]")