JSON синтаксический анализ для строки, но для числа в Java - PullRequest
0 голосов
/ 05 января 2020

Я пишу парсер для входящих JSON данных без определенной структуры для значений в JSON. Например, данный ключ в родительском JSON может иметь целое или строковое значение. В некоторых случаях это также может быть другая строка JSON. При попытке использовать метод JSON .parse () из библиотеки mon go - java -driver я столкнулся с таким поведением -

String val = "45.55";
Object o = JSON.parse(val);
System.out.println(o);

Приведенный выше код выводит значение o как 45.55

String val = "product";
Object o = JSON.parse(val);
System.out.println(o);

Приведенный выше код выдает com.mongodb.util.JSONParseException

Почему оба фрагмента кода не ведут себя одинаково?

1 Ответ

4 голосов
/ 05 января 2020

45.55 является действительным литералом JavaScript, относящимся к числу с этим значением.

product не является допустимым литералом JavaScript. "product" есть. Если вы изменили свой второй пример на:

String val = "\"product\"";

... он будет работать так, как вы ожидаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...