我们如何准备 "valid JSON" from Linkedin Share API

How can we prepare "valid JSON" from Linkedin Share API

最近,我们从日志中看到:

httpRes status received 400 Bad Request for this linkedinToken AQUz3sCODu312rHNtNfuns3awy0xoUxxxxxxxxxxx.
 With Request: {"content":{"submitted-url":"http://mpg.smh.re/2Ra","title":"Gestionnaire sinistre H/F − Belgique ","description":"Responsable de la gestion de dossiers sinistres dans leur intégralité,
 vous serez en contact avec de nombreux interlocuteurs (compagnies 
d’assurances, clients et bureaux locaux).","submitted-image-url":"http://www.morganphilipsexecutivesearch.com/wp-content/uploads/2014/09/fyte-smarpshare.jpg"},"visibility":{"code":"anyone"},"comment":"FYTE, cabinet de recrutement spécialisé recrute pour l’un de ses clients situé en Belgique un Gestionnaire sinistre H/F."}.
 Response body: {
  "errorCode": 0,
  "message": "Couldn't parse Json body: Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value\n at [Source: java.io.StringReader@42ea5bc1; line: 1, column: 187]",
  "requestId": "0GYQWP14U9",
  "status": 400,
  "timestamp": 1423490252325
}

```

LinkedIn API 表示无法解析 JSON 正文。我们怀疑 JAVA JSON 解析器不处理字符“é”或“’”。

我的问题是还有其他 special/unicode 个字符是我们应该注意的吗?因为这个 JSON 正文是由 Go 的内置编组的。

更新:我最近发现 "line feed" ("CTRL-CHAR, code 10") 是这个问题的关键。 "Line feed" 个字符出现在“...leur intégralité”之后。我现在的问题是为什么 Go 内置 JSON 编组器不处理

JSON 可以处理 Unicode 字符...只要它们被正确编码。

但是错误消息显示:

Illegal unquoted character ((CTRL-CHAR, code 10))

这好像是说你在JSON中有一个控制字符。 JSON 语法规定字符串中不允许使用未转义的控制字符。

现在如果我们假设10是十进制,那么它就是一个换行符。所以我会在 JSON 中从一开始就寻找大约 187 个字符的原始换行符。


My question now is that why doesn't Go built-in JSON marshaller handle that.

两种可能性:

  • 这是一个错误,或者
  • 你没有正确使用它。