【问题标题】:Unwanted character \\\r is appearing in json response from rest api不需要的字符 \\\r 出现在来自 rest api 的 json 响应中
【发布时间】:2015-06-21 08:55:49
【问题描述】:

我已经编写了一些rest服务来从mysql数据库中提取数据并在Postman客户端上以json格式显示。但是,对于某些响应项,我在响应值中得到了这个不需要的 \\r 字符。例如:

{
"colour": "yellow",
"deliveryCharge": 5,
"description": "Mangoes from Ratnagiri",
"keyFeatures": [
  "Seedless\\\r",
  "Ripe and Sweet"
],
"price": 100,
"productId": 49,
"productName": "Alfonso",
"specifications": {
  "entry": [
    {
      "key": "Feature",
      "value": "N/A"
    }
  ]
},
"stock": 20,
"warranty": 1
}

如何在最终的 json 响应中去掉这些字符?对于从数据库中获取的输出字符串,我尝试使用 .replace().split() 方法隔离它们,但它不起作用。

【问题讨论】:

  • 我们怎么知道?您还没有发布任何一行代码来展示如何生成 JSON。我可以让你知道你没有通过将字符串附加在一起来生成 JSON,并且你正在使用 JSON 库。
  • 我使用@produces(APPLICATION_JSON) 和@XMLRootElement 注解自动生成json格式。
  • @whosoever 否决了这个:请不要无缘无故地投反对票。如果您有任何疑问,请询问,我会澄清。我是 REST API 的新手。
  • 所以数据库中的字符串包含这些字符。 JSON与您的问题无关。只是数据包含一个尾随\后跟一个\r。
  • 我投反对票是有原因的。你在问为什么不发布任何代码就不能正常工作。

标签: java mysql json rest


【解决方案1】:

字符串中有两个转义字符 \\r。 String 类中的trim 方法可以删除\r,但不能删除\。如果您不想发送这些字符,则必须在将对象序列化为 JSON 之前自己完成。

【讨论】:

  • 是的,我该怎么做?
  • @SoulRayder 您必须在将从数据库检索到 json 的数据序列化时执行此操作
  • json 是自动形成的,因为我使用的是 @XmlrOOTeLEMENT 的注释,所以我什么时候检测到这些字符?以及如何删除它们。我尝试了 .replace("\\\r","") 和 .split("\\\r")。修剪没用
  • 再一次,您告诉我们您尝试了一些东西,想知道为什么它不起作用,但未能发布代码。我们不看代码就找不到代码中的错误。
猜你喜欢
  • 2016-01-17
  • 1970-01-01
  • 2019-01-02
  • 2021-05-27
  • 2018-08-31
  • 1970-01-01
  • 2013-04-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多