JSON запрос модификации

Мне нужно изменить мой 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,'"[','[') но это заменило все мои " так же как [,

2 ответа

<rant> Вы действительно должны исправить процесс Java, который генерирует искаженный вывод, чтобы гарантировать, что он генерирует допустимый JSON. Попытки восстановить испорченные данные - пустая трата времени и не позволяют использовать стандартные форматы данных. Также может произойти сбой в случайное время, когда "исправление" не может обработать все крайние случаи. </rant>

Причина по которой fn:translate() не сработало так, как вы ожидали, это то, что вы, вероятно, ожидали, что он будет работать больше как поиск / замена полных строк, но он основан на символах. Первый символ второго параметра будет заменен первым символом третьего параметра (или удален, если соответствующего символа нет), а затем каждым последующим символом в строках. Так, fn:translate(req,'"[','[') на самом деле означало "заменить двойную кавычку на [и заменить [на ничто".

Чтобы удалить оскорбительные символы, вы можете использовать fn:replace(), который берет шаблон регулярного выражения для того, что найти, и строку для того, что заменить на:

fn:replace(fn:replace(req, '"\[', "["), '"\]', "]")

Если у вас есть XML в конвейере, почему бы вам просто не использовать NXSD для автоматического перевода в json.

Чтобы сделать это, пока у вас есть XSD Для JSON, тогда просто используйте компонент nXSD, перевод произойдет автоматически?

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

Другие вопросы по тегам