我们如何从 Linkedin Share API 准备“有效的 JSON”

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


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 解析器不处理字符“é”或“'”。


我的问题是我们应该注意其他任何特殊/Unicode 字符吗?因为这个 JSON 主体是由 Go 内置的编组。


更新:我最近发现“换行”(“CTRL-CHAR,代码 10”)是这个问题的关键。“换行”字符出现在“...leur intégralité,”之后。我现在的问题是为什么 Go 内置的 JSON marshaller 不处理它


萧十郎
浏览 103回答 1
1回答

偶然的你

JSON 可以处理 Unicode 字符……只要它们被正确编码。但是错误消息说:Illegal unquoted character ((CTRL-CHAR, code 10))这似乎是说您在 JSON 中有一个控制字符。JSON 语法规定字符串中不允许使用未转义的控制字符。现在如果我们假设 10 是十进制的,那么它就是一个换行符。所以我会从一开始就在 JSON 中寻找大约 187 个字符的原始换行符。我现在的问题是为什么 Go 内置的 JSON marshaller 不处理它。两种可能:这是一个错误,或者你没有正确使用它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go