我是 JSON 文档的初学者,这是我的代码,所以请帮我解决这个错误。
{
"_id": "_design/utilisateur",
"_rev": "1-967a00dff5e02add41819138abb3284d",
"views":
{
"tous": {
"map": "function(doc){if (doc.role=='ut.... ]])}}"
},
"3500": {
"map": "function(doc) {if (doc.role=='ut... )}}"
},
"distancetot": {
"map": "function(doc) {var somme= ... eur'){
emit(doc._id, somme);
}
}"
}
}
}
错误消息告诉您在字符串文字中有一个控制字符,例如,字符代码 8 或 10 或 13 或任何低于 32 的字符(空格)。
The JSON definition告诉我们您不能在字符串文字中使用文字控制字符,您必须使用转义序列,例如 \b
、\r
、\n
或 \uXXXX
,其中 XXXX
是 Unicode“代码点”(字符)的十六进制代码。
例如,假设以下内容在文件(或其他数据流)中:
{
"property": "value with an invalid
control character in it"
}
这是无效的 JSON,以 "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'){
之后的换行符是无效的控制字符,就像我上面的示例一样。