Проверить и очистить JSON в Omnis Studio?

Правильный JSON

      [{
    "user_id": 1,
    "user_name": "John Doe I"
}, {
    "user_id": 2,
    "user_name": "Jane Doe III"
}]

Но если он содержит недопустимые символы, он не будет проверен. Вот так с CR после Doe:

      [{"user_id":1,"user_name":"John Doe 
I"},{"user_id":2,"user_name":"Jane Doe III"}]

Мой вопрос: есть ли в Omnis Studio 8 функция «очистки», где вывод является правильным JSON?

РЕДАКТИРОВАТЬ

Заменить или удалить ИЗВЕСТНЫЕ символы легко. Проблема в том, что текст, скопированный из MS Word и Интернета, может содержать НЕИЗВЕСТНЫЕ символы. Итак, я ищу команду типа

Calculate VALIDJSON as keepvalidchar(NOTVALIDJSON)

Есть ли такой зверь?

2 ответа

согласно этому сообщению Как мне обрабатывать новые строки в JSON?

если вам нужны новые строки в текстовой строке, вам нужно экранировать \n. поэтому \n в исходной строке json должна быть допустимой заменой «cr». например.

      [{"user_id":1,"user_name":"John Doe\nI"},{"user_id":2,"user_name":"Jane Doe III"}]

Насколько я понимаю, если вы извлекаете данные из базы данных, чтобы отправить их в какое-либо место в Интернете, вы можете избежать новой строки, чтобы сохранить их в тексте, а не изменять JSON постфактум. Конечно, это зависит от цели вызова API к серверу, получающему json.

Я думаю, что суть

  • если вы хотите, чтобы json отражал исходный текстовый контент, включая специальные символы, вы избегаете его
  • если нет, то вы удаляете его. Я бы, вероятно, очистил исходный код, так как, возможно, я захочу оставить json отформатированным и заменить \n на пустое .. может не получить желаемого эффекта.

Вы просто ищете

      do replaceall(lcVar,kCR,'\n') Returns lcVar

вызов функции?

Таким образом, заменив символ CR на экранированную нормальную кодировку '\n'

Я думаю, другой вопрос: вы создаете JSON для отправки или получаете JSON и пытаетесь его декодировать?

Если вы получаете, может быть, OJSON.$formatjson() может помочь?

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