编译器不接受我的JSON表示法

问题描述 投票:-2回答:1

“未捕获的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);   
}

它返回上述错误。我该怎么办?

javascript json string-parsing
1个回答
0
投票

这是从普通Javascript对象转换为JSON并返回的方法。

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);

objectPreJSON是普通的Javascript对象,不是有效的JSON。这就是为什么您需要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。

© www.soinside.com 2019 - 2024. All rights reserved.