1

我需要修改我的 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,'"[','[') ,但这取代了我所有"的以及[.

4

2 回答 2

0

如果管道中有 XML,为什么不直接使用 NXSD 自动转换为 json。

要做到这一点,只要你有用于 JSON 的 XSD,那么只需使用 nXSD 组件,翻译就会自动发生吗?

https://svgonugu.com/2015/12/27/using-translate-activity-for-xml-to-json/

于 2018-02-20T10:15:09.413 回答
0

<rant>您确实应该修复生成错误输出的 Java 进程,以确保它生成有效的 JSON。试图修复损坏的数据是浪费时间,也违背了使用标准数据格式的目的。当“修复”无法处理所有边缘情况时,它也可能会随机失败。</rant>

没有按您预期的方式工作的原因fn:translate()是您可能希望它更像是查找/替换完整字符串,但它是基于字符的。第二个参数中的第一个字符将替换为第三个参数中的第一个字符(或删除,如果没有相应的字符),然后是字符串中的每个后续字符。所以,fn:translate(req,'"[','[')真正的意思是,“用 [ 替换双引号并将 [ 替换为空”。

为了删除有问题的字符,您可以使用fn:replace(),它采用正则表达式模式来查找要查找的内容,并使用字符串来替换要替换的内容:

fn:replace(fn:replace(req, '"\[', "["), '"\]', "]")
于 2018-03-11T19:33:12.407 回答