我想添加一个JSON对象中的字符串...字符串特殊字符转换为JSON字符串化非法令牌
// this var can have special characters like [], commas, quotes, double quotes, accents, colon, semicolon, question marks, and maybe some other characters... Example*
var textArticle = "Le Lorem Ipsum; est simplement. Du [faux] texte, employé: dans la composition, et la mise? En pagão avant impression!";
// this var I'll get from a date object
var hourArticle = "18:20";
JSON.stringify({ "hour": hourArticle }),
当我只有JSON里面小时,它工作得很好,我可以使用:
var hourFinal = JSON.parse(json).hour;
但是当我添加与textArticle的值的另一个入口,我得到“未捕获的SyntaxError:意外的标记非法”:
JSON.stringify({ "text": textArticle, "hour": hourArticle }),
var textFinal = JSON.parse(json).text;
Error Uncaught SyntaxError: Unexpected token ILLEGAL
任何令牌我试着用JSON.parse,例如
有什么不对?我感谢任何帮助! 谢谢
更新#1: 我创建与科尔多瓦和jQuery移动web应用程序... JSON对象是一个本地通知插件:Kazter Local Notification ......我创建了通知传球json stringify,并从插件的onTrigger函数返回json对象。但是,我使用JSON.parse(JSON)...... 时得到了非法令牌插件是这样的
window.plugin.notification.local.add({
message: mainText,
json: JSON.stringify({ "text": textArticle, "hour": hourArticle }),
title: 'Title 1'
});
谢谢你们
更新#2: 玉家伙,我发现了什么是怎么回事,有whas无关插件或科尔多瓦,或什么... textArticle VAR其从一个文本文件的随机行。像这样的值:
var filePath = "txt/datatexts.txt";
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET",filePath,false);
xmlhttp.send(null);
var fileContent = xmlhttp.responseText;
var fileArray = fileContent.split('\n')
var randLineNum = Math.floor(Math.random() * fileArray.length);
var textRandom = fileArray[randLineNum];
var textRandomParts = textRandom.split('#');
var textArticleFull = textRandomParts[0] + " " + textRandomParts[1] + " " + textRandomParts[2];
var textArticle = textArticleFull;
但解决textArticle值时,它的输出是这样的:
var textArticle = "Le Lorem Ipsum; est simplement. Du [faux] texte, employé: dans la composition, et la mise? En pagão avant impression!\r";
我不知道为什么,但它把“\ r”的值.. 的末尾,再抛出非法令牌.. 因此,所有我必须做的是:
var textArticleOK = textArticle.replace("\r", "");
json = JSON.stringify({ "text": textArticleOK, "hora": hourArticle});
var textArticleParse = JSON.parse(json).text;
那么......就是这样......有些事我应该知道? 我只是不知道为什么会发生这种情况,因为'\ r'在双引号内....而且我用'\ n'按行分割文本文件。 另外这是我的文本文件看起来像:
- 文本part1的#文本第2部分#文第三部分
- 文本part1的#文本第2部分#文第三部分
- 文本part1的#文本第2部分#文第三部分
它没有每行结尾处的'\ n',我必须添加那个吗?
非常感谢!
它为我的作品:http://jsfiddle.net/vh5yakub/ – Oriol 2014-11-22 15:44:04
感谢@Oriol寻找到的jsfiddle,效果真的不错... 我不知道为什么...我正在用cordova和jquery mobile创建一个web应用程序... json对象是一个本地通知插件...也许它有一些长度限制...我无法弄清楚发生了什么事情。 – Zembo 2014-11-22 16:00:02