【问题标题】:How to make Unrecognized character escape '.' (code 46) to be Recognized - com.fasterxml.jackson.core.JsonParseException如何使无法识别的字符转义“。” (代码 46)被识别 - com.fasterxml.jackson.core.JsonParseException
【发布时间】:2021-09-27 23:28:41
【问题描述】:

我在 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 解析器。修复您的数据。

标签: java json xml elasticsearch jackson


【解决方案1】:

JSON 只允许某些字符以\ 开头,而. 不是其中之一。您无法更改JSON specification,并且您不会说服 JSON 解析器的作者接受无效输入,因此您必须更改数据以符合规范。这就是标准的用途。

【讨论】:

    猜你喜欢
    • 2018-10-29
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    • 2014-08-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    相关资源
    最近更新 更多