将特殊字符字符串到 JSON 字符串化非法令牌中
string special characters into json stringify illegal token
我正在尝试在 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 值的条目时,对于我尝试使用 JSON.parse 的任何令牌,我都会得到"未捕获的语法错误:意外令牌非法",例如:
JSON.stringify({ "text": textArticle, "hour": hourArticle }),
var textFinal = JSON.parse(json).text;
Error Uncaught SyntaxError: Unexpected token ILLEGAL
怎么了?我感谢任何帮助!谢谢
更新#1:我正在创建一个带有cordova和jquery移动的网络应用程序...json 对象用于本地通知插件:Kazter 本地通知...我已经创建了传递 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:好的伙计们,我发现了发生了什么,与插件或科尔多瓦或任何东西无关......文本文章变量的值 它是文本文件中的随机行。喜欢这个:
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"在双引号内......我正在用"'"按行拆分文本文件。这也是我的文本文件的样子:
- 文本部分1#文本部分
- 2#文本部分3 文本部分1#文本部分
- 2#文本部分3 文本部分1#文本部分
- 2#文本部分3
行末尾没有"'",我必须添加它吗?
多谢!
此示例不会引发任何异常:
var textArticle = "Le Lorem Ipsum; est simplement. Du [faux] texte, employé: dans la composition, et la mise? En pagão avant impression!";
var hourArticle = "18:20";
var json = JSON.stringify({ "text": textArticle, "hour": hourArticle });
var textFinal = JSON.parse(json).text;
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- ng打开空字符串
- 正则表达式在字符串中找到base64
- 如何将字符串值从php页面发送到java脚本页面
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 在实现基本Sharethis代码时指定了无效或非法的字符串
- 为什么我得到“;非法字符语法错误未终止的字符串文字“;当我使用javascript时
- 铬 - 意外令牌 非法.火狐和.字符串文字
- WebSocket 语法错误:指定了无效或非法的字符串
- gap.client.load未调用回调:在console.log中指定了一个无效或非法的字符串
- SyntaxError:非法的返回语句-正在url中搜索字符串
- 意外的令牌在ES6模板字符串上是非法的
- 为什么在ajax上发送的HTML字符串中,尾行字符是非法的?
- 将非法字符串保存在隐藏输入中
- 避免在字符串赋值时意外令牌非法
- 通过模板工具箱从多行字符串中获得的意外令牌是非法的
- 未捕获的SyntaxError:意外的令牌非法和SyntaxError:未终止的字符串文字
- 将javascript字符串中的非法字符替换为合法字符