使用jquery或javascript添加或更改JSON键的值

我有一个JSON string(?) ,我从$.ajax()返回并命名为data 。 有些值为空,我需要为某些键添加值并将其发送回我的PHP脚本。

我通过data.keyName访问现有值。 如何在“数据”中添加或更改某些键的值?

这就是data样子。

 { "ID":"48", "userID":"0", "address":"750 North High Street", "city":"Columbus", "state":"OH", "zip":"43215", "lat":"39.977673", "lng":"-83.003357", "busNumber":"55", "isClaimed":"N", "whereFound":"", "busNum":"", "email":"", "fname":"", "lname":"", "comments":"" } 

解码完JSON后,结果就是一个JavaScript对象。 像对待任何其他对象一样操纵它。 例如:

 data.busNum = 12345; ... 
 var temp = data.oldKey; // or data['oldKey'] data.newKey = temp; delete data.oldKey; 

就像你对任何其他变量一样,你只需设置它

 alert(data.ID); data.ID = "bar"; //dot notation alert(data.ID); data.userID = 123456; data["address"] = "123 some street"; //bracket notation 

似乎您的密钥保存在变量中。 data.key = value不起作用。

您应该使用data[key] = value

例:

 data = {key1:'v1', key2:'v2'}; var mykey = 'key1'; data.mykey = 'newv1'; data[mykey] = 'newV2'; console.log(data); 

结果:

 { "key1": "newV2", "key2": "v2", "mykey": "newv1" } 
 data.userID = "10"; 
 var y_axis_name=[]; for(var point in jsonData[0].data) { y_axis_name.push(point); } 

y_axis_name具有所有密钥名称

试试jsfiddle