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

Pop*_*orn 5 java json jackson

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

{"street_address":"Stone House Lane, Peckforton?, Tarporley?, London, Cheshire"}
Run Code Online (Sandbox Code Playgroud)

我正在使用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]
Run Code Online (Sandbox Code Playgroud)

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

答:谢谢,对于那些好奇的人,我使用tr -cd'\ 11\12\15\40-\176'<f​​ile> cleanFile删除了这些不可读的字符

Lui*_*oza 9

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

{"street_address":"Stone House Lane, Peckforton? , Tarporley? , London, Cheshire"}
                                               ^           ^
                                               here and here
Run Code Online (Sandbox Code Playgroud)

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

{"street_address":"Stone House Lane, Peckforton, Tarporley, London, Cheshire"}
Run Code Online (Sandbox Code Playgroud)

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