javascript - 如何解决这段代码中的JSON.parse : bad control character in string literal,

标签 javascript json

<分区>

我是 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'){ 之后的换行符是无效的控制字符,就像我上面的示例一样。

关于javascript - 如何解决这段代码中的JSON.parse : bad control character in string literal,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17487058/

相关文章:

c# - 有没有办法将 xml 转换为 json?

python - Django - 使用从类似 REST 的 API 检索的数据构建报告的应用程序

php - 丢在YouTube API中

javascript - 正则表达式提取字符串末尾第二个 "."点字符后的字符串

javascript - 如何阻止用户在提交表单后离开页面(即在处理时)?

javascript - Function.prototype.toString() 并不总是返回有效的 JS。为什么?

JSON 架构 : Conditional dependency (by value)

python、Json 和字符串索引必须是整数,而不是 str

javascript - 获取文档中的所有javascript变量

javascript - 如何撤消最后选中的复选框?