为什么在字符串中逗号时JSON无效?

时间:2014-06-18 22:24:21

标签: java json jackson

任何人都知道为什么这个JSON无效?

{"street_address":"Stone House Lane, Peckforton
, Tarporley
, London, Cheshire"}

我正在使用Jackson for Java并且抱怨

java.lang.IllegalArgumentException: com.fasterxml.jackson.core.JsonParseException:     Unexpected end-of-input: was expecting closing quote for a string value
at [Source: java.io.StringReader@6ad16fc1; line: 1, column: 405]

我注意到此JSON在此在线网站上也被视为无效: http://jsonviewer.stack.hu/

答:谢谢,对于那些好奇的人,我已经使用tr -cd' \ 11 \ 12 \ 15 \ 40- \ 176' <档案> cleanFile

1 个答案:

答案 0 :(得分:8)

复制/粘贴您的确切文本后,它显示为无效的JSON变量。然后,我只是将相同的内容复制/粘贴到记事本中(使用Windows 7)并注意到字符串中有奇怪的字符(这些字符在此页面或网页编辑器中都看不到,所以我使用空白空间代替):

{"street_address":"Stone House Lane, Peckforton
 , Tarporley
 , London, Cheshire"}
                                               ^           ^
                                               here and here

我刚删除它们并按预期工作。从这里复制/粘贴它:

{"street_address":"Stone House Lane, Peckforton, Tarporley, London, Cheshire"}

经过更深入的评估后,此字符的十六进制表示为\ u80A8。