意外标记非法:如何删除"e;行与JSON断开

意外标记非法:如何删除"e;行与JSON断开,json,javascript,jquery,pageload,handlebars.java,Json,Javascript,Jquery,Pageload,Handlebars.java,加载页面时,我从服务器接收到一条消息,并使用handelbar.java在页面中填充该消息。直到现在一切都很好 然而,我想得到那个对象并将它存储在一个对象上,这就是我失败的地方 当我尝试将其存储在对象上时,我会执行以下操作: var jsObject = "{{output.items}}"; // the output.items is the JSON retrieved on the template 我得到以下信息"e;并解释换行符: { "prof

加载页面时,我从服务器接收到一条消息,并使用handelbar.java在页面中填充该消息。直到现在一切都很好

然而,我想得到那个对象并将它存储在一个对象上,这就是我失败的地方

当我尝试将其存储在对象上时,我会执行以下操作:

var jsObject = "{{output.items}}";  // the output.items is the JSON retrieved on the template
我得到以下信息"e;并解释换行符:

{
    "profile": {
        "name": "copernic",
        "email": "copernic@cop.com"
    }
    ....
}
{
    "profile": {
        "name": "copernic",
        "email": "copernic@cop.com"
    }
    ....
}
我应该在不解释换行符的情况下得到以下结果:

{
    "profile": {
        "name": "copernic",
        "email": "copernic@cop.com"
    }
    ....
}
{
    "profile": {
        "name": "copernic",
        "email": "copernic@cop.com"
    }
    ....
}
因此,它在未捕获的SyntaxError上向我抛出了一个错误:意外标记非法

在使用HTML模板打印json时,它看起来很好

您知道如何将从服务器返回的内容存储在加载到对象的页面上,因为我无法控制它,因为它不随附


谢谢。

您的服务器提供的json格式不正确

您的服务器需要提供带有双引号的json字符串

eval("jsObject={" + object.items.replace(/"/g,'"')+"}");
如果需要提供格式良好的json,可以尝试使用Gson。

由于content output.items是一个字符串,因此您可以这样继续


JSON对象用词不当。。。另一方面,JSON是以什么形式从服务器传递到页面的?您可能需要解析它,即JSON.parse,但这又取决于您所说的从服务器返回的JSON是什么意思。以上两种都不是有效的JSON。也不是有效的JS对象初始值设定项。那你到底为什么要逃避你的数据呢?@Terry:谢谢你的回答。我有一个动态网页,以handlebar.java作为模板引擎。基本上,我在模板的服务器端有一个Json对象。我可以很容易地获得它的元素,例如:{{profile.name}

或者在JS:var name={{{profile.name}}中。但问题是当我想将整个对象分配给一个JS时variable@Oriol:写问题时忘记删除分号并添加变量:@Copernic我的意思是在JSON中,属性名必须在JS中引用,这是不必要的。因为这些值是字符串,所以它们也必须被引用。如果你不是故意逃避它们,你应该找到逃避它们的东西并禁用它,而不是试图逃避。谢谢。但是我的Json在服务器端看起来很好,就像你写的一样:-我的问题是它在模板上被转义哦,我明白了。。。你试过使用三个大括号吗,比如{{{{ob.test}}}}?好吧,这不是最优雅的一个,但它很管用。由于服务器向您发送了正确的数据,您可以查看处理AJAX请求的工具/过程,您可以查看AJAX例程要返回的内容。是你要求的HTML而不是JASON吗?