我想添加一個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