JsonParseException: Неверный ввод JSON. Позиция: 9. Символ: '.'

Я использую MongoDBb с Spring Boot 2.0.1.RELEASE, Кажется, все работает нормально. Я могу правильно выполнять операции CRUD, используя MongoRepository. Когда я использую запрос mongodb как

@Query(value = "{address.city:?0}")
public List<Hotel> findByCity(String city);

@Query(value = "{address.country:?0}")
public List<Hotel> findByCountry(String country);

Когда я пытаюсь получить доступ к данным с помощью URL localhost:8090/hotels/address/city/RomeВ ответ получаю следующую ошибку

{
    "timestamp": "2018-05-04T04:51:43.549+0000",
    "status": 500,
    "error": "Internal Server Error",
    "message": "Invalid JSON input. Position: 9. Character: '.'.",
    "path": "/hotels/address/city/rome"
}

и следующий лог в консоли:

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.bson.json.JsonParseException: Invalid JSON input. Position: 9. Character: '.'.] with root cause

org.bson.json.JsonParseException: Invalid JSON input. Position: 9. Character: '.'.

Я не знаю, почему я получаю Invalid JSON input. Position: 9. Character: '.'. когда я выступаю GET запрос?

Куда я иду не так?

2 ответа

Недостающие цитаты; @Query(value = "{'address.country':?0}")

- Нил Ланн

Это сработало и для меня.

Это может произойти, если вам не хватает кавычек, или это может быть из-за неанализируемой строки, переданной в MongoDB. Попробуйте использовать проанализированную строку, например \"appname\":1. Это пример проекции.

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