我是 JSON 文档的初学者,这是我的代码,因此请帮助我解决此错误。
{ "_id" : "_design/utilisateur", "_rev" : "1-967a00dff5e02add41819138abb3284d", "views" : { "tous" : { "map" : "function(doc){if (doc.role=='utilisateur') {emit (doc._id, [['t0',doc.distancet0],['t1',doc.distancet1],['t2',doc.distancet2],['t3',doc.distancet3], ['t4',doc.distancet4]])}}" }, "3500" : { "map" : "function(doc) {if (doc.role=='utilisateur' && doc.distancet0<3500) {emit(doc._id,doc.distancet0)}}" }, "distancetot" : { "map" : "function(doc) {var somme= Math.abs(doc.distancet0- doc.distancet1); if(doc.role=='utilisateur'){ emit(doc._id, somme); }}" } } }
错误消息告诉您在字符串文字中包含控制字符,例如,字符代码8或10或13或任何小于32(空格)的字符。
该JSON定义告诉我们,你不能在字符串字面控制字符,则必须使用转义序列,如\b,\r,\n,或\uXXXX在那里XXXX是一个Unicode“码点”十六进制代码(字符)。
\b
\r
\n
\uXXXX
XXXX
因此,例如,假设以下内容位于文件(或其他数据流)中:
{ "property": "value with an invalid control character in it" }
那是无效的JSON,以字符串开头的字符串文字"value中至少包含一个控制字符(换行符,取决于操作系统,可能是一个或两个控制字符)。
"value
这是我们将如何解决的方法:
{ "property": "value with an valid\nescape sequence in it" }
注意\n换行符曾经所在的位置。
您可以使用http://jsonlint.com来验证JSON,这很容易指出错误所在。
重新编辑:确实是导致问题的换行符:
"distancetot": { "map": "function(doc) {var somme= Math.abs(doc.distancet0- doc.distancet1); if(doc.role=='utilisateur'){ Error is here -------------------------------------------------------------------------------------------------^
if(doc.role=='utilisateur'){跟上面的例子一样,后面的换行符是无效的控制字符。
if(doc.role=='utilisateur'){