json.parse意外令牌错误

时间:2015-12-13 10:31:52

标签: javascript json node.js

我正在尝试将字符串解析为json对象,但我总是得到相同的错误 SyntaxError:意外标记'

var data = ('{' + fields.productName.toString() + ":" + parseInt(fields.quantity.toString()) + '}' );

我尝试了很少的变化,但没有任何作用。

3 个答案:

答案 0 :(得分:2)

您需要在值名称

周围加上引号
data = ('{\"' + fields.productName.toString() + "\":" + parseInt(fields.quantity.toString()) + '}' );

但是你不应该手动生成json,因为现在你需要转义fields.productName.toString()包含的所有引号。您应该使用JSON.stringify代替。

答案 1 :(得分:2)

我认为你不需要这样做,只需这样做:

var fields = {productName: 'hello', quantity: 1};
var data = {};
data[fields.productName.toString()] = parseInt(fields.quantity.toString());
console.log(JSON.stringify(data));

JSFiddle

答案 2 :(得分:1)

避免问题的最佳方法:

  var data = {};
  data[fields.productName.toString()] = parseInt(fields.quantity.toString());

P.S。利用JS对象的美感,不要通过使用字符串构造对象来重新发明轮子:)