JsonParseException:无效的JSON输入。位置:9。性格:'。'

时间:2018-05-04 04:57:59

标签: spring mongodb spring-boot spring-mongodb mongorepository

我将MongoDBb与Spring Boot 2.0.1.RELEASE一起使用。一切似乎都很好。我能够使用MongoRepository正确执行CRUD操作。当我在

中使用mongodb查询时
@Query(value = "{address.city:?0}")
public List<Hotel> findByCity(String city);

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

当我尝试使用网址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 个答案:

答案 0 :(得分:0)

缺少引号; @Query(value =“ {'address.country':?0}”)

–尼尔·伦(Neil Lunn)

那对我也有用。

答案 1 :(得分:0)

如果您缺少引号,或者可能是由于传递给 MongoDB 的未解析字符串,则可能会出现这种情况。尝试使用像 \"appname\":1 这样的解析字符串。这是一个投影示例。