Javascript &引用;JSON.parse(str)";“返回”;意外标记c“;但是str是一个字符串
我正在尝试下面的方法(如下),但是当我想包装JSON.parse时,我得到了一个意外的错误标记C。我在线检查了类似的问题,它说输入已经是一个对象,因此引发此错误的原因。然而,我尝试了typeof str,它返回了字符串。也可以通过PiecessString[0]访问它。col不起作用-因此我的输入不是对象,而是字符串。出了什么问题Javascript &引用;JSON.parse(str)";“返回”;意外标记c“;但是str是一个字符串,javascript,html,json,Javascript,Html,Json,我正在尝试下面的方法(如下),但是当我想包装JSON.parse时,我得到了一个意外的错误标记C。我在线检查了类似的问题,它说输入已经是一个对象,因此引发此错误的原因。然而,我尝试了typeof str,它返回了字符串。也可以通过PiecessString[0]访问它。col不起作用-因此我的输入不是对象,而是字符串。出了什么问题 function generatePieces(nbPieces) { console.log("** nbPieces: "
function generatePieces(nbPieces) {
console.log("** nbPieces: " + nbPieces)
var piecesString = "";
var piecesArray = [];
var colIter = 0;
var rowIter = 0;
for (var i = 0; i <= (nbPieces*nbPieces-1); i++) {
piecesString = piecesString + "{col:" + colIter + ",row:" + rowIter + "},"
colIter = colIter + 1;
if (colIter == (nbPieces)) {
//console.log("colIter = nbPieces")
colIter = 0;
rowIter = rowIter +1;
}
}
piecesString = piecesString.substring(0, piecesString.length - 1);
piecesString = "[" + piecesString + "]"
piecesString = '' + piecesString
console.log(piecesString)
piecesArray = JSON.parse(piecesString);
//console.log(piecesString)
}; // end generate pieces
函数生成器(nbPieces){
控制台日志(“**nbPieces:+nbPieces)
var piecesString=“”;
var piecesArray=[];
var-colIter=0;
var-rowIter=0;
for(var i=0;istr
是一个JS字符串,但不是JSON文本的字符串表示形式
JSON中的属性名称必须是字符串,而不是标识符
{col:123}
是有效的JavaScript对象文本,但JSON无效
{“col”:123}
在这两个方面都可以
不要试图通过将字符串混合在一起来构建JSON。这比它的价值更麻烦。用您当时使用的任何编程语言(本例中为JavaScript)构建一个数据结构,然后将其传递给JSON序列化程序
var pieces = [];
for (var i = 0; i <= (nbPieces*nbPieces-1); i++) {
var piece = { col: colIter, row: rowIter };
pieces.push(piece);
}
var json_text = JSON.stringify(pieces);
var片段=[];
for(var i=0;istr
是一个JS字符串,但不是JSON文本的字符串表示形式
JSON中的属性名称必须是字符串,而不是标识符
{col:123}
是有效的JavaScript对象文本,但JSON无效
{“col”:123}
在这两个方面都可以
不要试图通过将字符串混合在一起来构建JSON。这比它的价值更麻烦。用您当时使用的任何编程语言(本例中为JavaScript)构建一个数据结构,然后将其传递给JSON序列化程序
var pieces = [];
for (var i = 0; i <= (nbPieces*nbPieces-1); i++) {
var piece = { col: colIter, row: rowIter };
pieces.push(piece);
}
var json_text = JSON.stringify(pieces);
var片段=[];
对于(var i=0;ipiecessString
的值是多少?您究竟为什么要手动创建JSON。您发现这个概念很容易出错。您的引号对于JSONUse jsonlint来说都是错误的,请确保JSON数据的格式正确,然后尝试JSON。解析检查:即使它是字符串,也不意味着它是有效的JSON这里的esson是,您永远不应该手工构建JSON。如果您必须在JavaScript中生成JSON,请使用JSON.stringify()
。有趣的评论,但绝对有价值!谢谢你的帮助,我现在明白了。片段字符串的价值是什么?你到底为什么要手动创建JSON。你发现这个概念很容易出错。JSONUse jsonlint为了确保JSON数据的格式正确,你的引用都是错误的,然后试试JSON.Parse检查:即使是字符串也不意味着它是有效的JSON。这里的主要教训是,你永远不应该手工构建JSON。如果你必须用JavaScript生成JSON,请使用JSON.stringify()
。有趣的注释,但绝对有价值!谢谢你的帮助,我现在明白了。谢谢。这很有意义!谢谢。这很有意义!