java - 如何使无法识别的字符转义“。” (代码 46)被识别 - com.fasterxml.jackson.core.JsonParseException
问题描述
我在 magento2 容器的 docker-compose 日志中看到了这个问题。是的,在一些 Magento2 插件中寻找问题是个好主意和方法,但目前尚不清楚问题的原因是什么。假设问题来自这个字符串“ Pris per fp.. ”以及产品描述中的几个类似字符串。
如果一些 ElasticSearch 设置甚至一些补丁可以教会 Jackson 忽略“.”,那就太好了。目前尚不清楚如何强制 Magento2 重现该问题。
目前我可以在没有安装 Magento2 的情况下重现该问题,并希望找到一个有人描述解决方法的地方。
# Start an elasticsearch instance
docker run \
--env 'node.name=mage-single-node' \
--env 'cluster.name=mage-single-node' \
--env 'discovery.type=single-node' \
-d --name=demo-es -p9200:9200 -it docker.elastic.co/elasticsearch/elasticsearch:6.8.17;
curl -XGET "http://localhost:9200/_search?" \
-H"Content-Type: application/json" -d'
{
"query": {
"query_string": {
"query": "\."
}
}
}'
解决方案
JSON 只允许某些字符以 a 开头\
,而.
不是其中之一。您无法更改JSON 规范,也无法说服 JSON 解析器的作者接受无效输入,因此您必须更改数据以符合规范。这就是标准的用途。
推荐阅读
- spring-boot - 如何修复 SchemaManagementException:架构验证:表 [offer] 中缺少列 [offer_profile_id]
- javascript - 根据标志将数据存储在数组中
- nearprotocol - 如果稍后在智能合约中从状态中删除,键值写入成本会降低吗?
- vba - 是否可以在 Visual Basic 中使用返回类型的 Windows API 函数调用?3个问题
- flutter - 当一个人点击网页上的返回按钮时,Riverpod 给出一个糟糕的状态异常
- python - NameError 没有用 Python 中的 Json 和 Pandas 定义
- android - 了解发布促销和评论
- mongodb - mongodb中的自定义orderin
- angular - 如何使用 Renderer2 使 parentNode 和模拟点击更安全?
- azure - 为什么 Azure 服务总线消息处理(AKS 中托管的 .NET Core)每 15 分钟下降一次,并且需要 3 倍以前的群集资源?