“未捕获的SyntaxError:JSON中位置2处的意外令牌c”这就是我的编译器所说的。在JSON中,我写道:
{ chGamma:7.5, chTheta:7.5, dgamma:0.01, distance:10.5,
dtheta:0.03, freq:1, gamma:90, maaiveld:0.0, maxX:0, maxY:0,
maxZ:0, minX:0, minY:0, minZ:0, panPointX:300, panPointY:300,
persp:1, speedFac:2, straal:1, theta:0, zoom:1, zoomFac:2 }
当我在https://www.freeformatter.com/json-formatter.html#ad-output中输入此字符串时,它没有问题,并将其转换为所需的对象。如果我用这段代码来喂Chrome:
function initViewValues(){
var viewJSON = '{ chGamma:7.5, chTheta:7.5, dgamma:0.01, distance:10.5, dtheta:0.03, freq:1, gamma:90, maaiveld:0.0, maxX:0, maxY:0, maxZ:0, minX:0, minY:0, minZ:0, panPointX:300, panPointY:300, persp:1, speedFac:2, straal:1, theta:0, zoom:1, zoomFac:2} '
var obj = JSON.parse(viewJSON);
}
它返回上述错误。我该怎么办?
const objectPreJSON = {
chGamma: 7.5,
chTheta: 7.5,
dgamma: 0.01,
distance: 10.5,
dtheta: 0.03,
freq: 1,
gamma: 90,
maaiveld: 0.0,
maxX: 0,
maxY: 0,
maxZ: 0,
minX: 0,
minY: 0,
minZ: 0,
panPointX: 300,
panPointY: 300,
persp: 1,
speedFac: 2,
straal: 1,
theta: 0,
zoom: 1,
zoomFac: 2
};
const objectJSON = JSON.stringify(objectPreJSON);
console.log(objectJSON);
const parsedObject = JSON.parse(objectJSON);
console.log(parsedObject);
stringify
将其转换为有效JSON的原因。 '{ chGamma:7.5, chTheta:7.5, dgamma:0.01, distance:10.5, dtheta:0.03, freq:1, gamma:90, maaiveld:0.0, maxX:0, maxY:0, maxZ:0, minX:0, minY:0, minZ:0, panPointX:300, panPointY:300, persp:1, speedFac:2, straal:1, theta:0, zoom:1, zoomFac:2}'
这也不是有效的JSON,普通Javascript对象周围的单引号不会将其转换为有效的JSON。对象的键必须是有效的字符串,即"validString"
,notValidString
。例如{ "chGamma":7.5, ...
objectJSON
是对象必须是什么样才能成为有效的JSON。