Как проверить, является ли переданный объект допустимым JSON в MarkLogic? - PullRequest
1 голос
/ 25 апреля 2019

В консоли запросов Marklogic мне нужно написать функцию JavaScript, где я могу проверить объект как допустимый JSON с выводом true / false.Как проверить это напрямую, без использования строк?

Я попытался взять ввод и преобразовать его в строку, а затем выполнить JSON.parse, но весь код неверен.

            function isValidJson(json) 
            {
              //var obj = JSON.stringify(json);
              try
                {  
                var x = JSON.parse(xdmp.toJSON(json));
                return x;  //returns the JSON object if true
                }
              catch(e)
                {
                fn.error(xs.QName("ERROR"), "Not a valid JSON") 
                }
            }
             var json = {"test":"data"};
            //var json = {"abc"};
            isValidJson(json);

Я хочу передать значение в виде объекта JSON, а не строки JSON.Когда это передано, функция должна возвратить, является ли это действительным JSON или нет.

Я могу сделать положительный тестовый пример, но не отрицательный.Вместо этого я получаю ошибку компиляции.

1 Ответ

0 голосов
/ 26 апреля 2019

Не уверен, что я полностью понимаю, что вы ищете, но JSON-объект уже проанализирован и не может быть недействительным. Вы должны проверить правильность, когда это все еще строка. Что-то вроде:

function isValidJson(json) {
  try {  
    return JSON.parse(json);  //returns the JSON object if true
  } catch(e) {
    fn.error(xs.QName("ERROR"), "Not a valid JSON") 
  }
}

//var json = '{"test":"data"}';
var json = '{"abc"}';
isValidJson(json);

НТН!

...