json.parse意外的令牌错误

我试图parsingstring到JSON对象,但我总是得到相同的错误SyntaxError:意外的标记'

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

我尝试了这个变化,但没有任何作品。

避免问题的最佳方法是:

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

PS利用JS对象的美丽,不要通过使用string构造对象来重新发明轮子:)

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

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

的jsfiddle

你需要引用值名称

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

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