我有一个Sencha Touch应用程序.我有一个商店使用ajax代理和json阅读器.从我的sinatra应用程序返回的JSON中的一些字符串偶尔会包含这个字符:http: //www.fileformat.info/info/unicode/char/2028/index.htm
虽然它是不可见的,但是字符在这里的第二个字符串中出现两次,在句点和结尾引号之间:
"description": "Each of the levels requires logic, skill, and brute force to crush the enemy.??"
Run Code Online (Sandbox Code Playgroud)
尝试复制并粘贴"每个级别需要逻辑,技能和蛮力来粉碎敌人."进入你的javascript控制台!它不会被解析为字符串,并且失败了SyntaxError: Unexpected token ILLEGAL.
这会导致JSON响应失败.我已经被困在这个很长一段时间了!有什么建议?
我已经尝试了一切.帮助者的每个组合raw,html_safe to_json包括与::JSON.encode和的一些尝试CGI.unescape.问题在于,无论我做什么,我都无法在视图中打印格式良好的JSON.它始终是HTML转义的.
这是我视图中的代码:
var campaignData<%= "=" + (raw @campaign.to_json) if @campaign %>;
就我而言,它始终是被引用的引号".我只会对引号做一个gsub,但这对于IMO应该是一个非常简单,记录良好的用例来说是一个可怕的解决方案.
我正在使用jQuery的ajax函数来访问跨域url.该网址将返回json.我正处于发现阶段,但我想,因为json值包含几个'"'字符串,json eval会抛出错误并停止执行我的客户端脚本.我得到的错误是"未终止的字符串文字".我知道如果我将返回的json硬编码放在本地div中并删除'"' 字符串(和几个隐藏的特殊字符),我可以成功地获得json到eval.无论是通过解决方法还是通过修改我的代码,我可以做些什么来从URL获取json并将其存储在我的客户端javascript中作为有效的json对象?
我目前的代码.没有定义的函数(success,complete,error,dataFilter)执行:
$(function() {
$.ajax({
url: "http://www.codemash.org/rest/sessions.json?format=jsonp&callback=?",
dataType: "jsonp",
success: successFunc,
complete: completeFunc,
error: errorFunc,
dataFilter: dataFilterFunc
});
});
function successFunc() { console.log('successFunc(). enter.'); }
function completeFunc() { console.log('complete(). enter.'); }
function errorFunc() { console.log('errorFunc(). enter.'); }
function dataFilterFunc(data, type) {
data.replace(/\W/g, ' ');
return data;
}
Run Code Online (Sandbox Code Playgroud) I have a index.html with a which sends a text to a PHP code. This PHP sends it again by POST (curl) to a Node.js server, inserted in a JSON message (utf8-encoded)
//Node.js server file (app.js) -- gets the json and shows it in a <script> to save it in client JS
render(index, {json:{string:"mystring"}})
//Template to render (index.ejs)
var data = <%=JSON.stringify(json)%>;
Run Code Online (Sandbox Code Playgroud)
So that I can pass those variables in the JSON to data. JSON is way bigger than here, …