使用jQuery或JavaScript添加或更改JSON键的值

使用jQuery或JavaScript添加或更改JSON键的值,javascript,json,jquery,Javascript,Json,Jquery,我有一个从$.ajax()返回的JSON字符串(?),并将其命名为data。一些值是空的,我需要向一些键添加值并将其发送回我的PHP脚本 我通过data.keyName访问现有值。如何在数据中添加或更改某些键的值 这就是数据的样子 { "ID":"48", "userID":"0", "address":"750 North High Street",

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

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

这就是
数据的样子

{
    "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;
...

就像其他变量一样,只需设置它

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"
}
y_轴_名称包含所有键名称


尝试

如果您使用
data.keyName
访问值,则不再具有JSON字符串。您有一个JavaScript对象。JSON已经为您解析为一个对象。谢谢您的解释,Ates。我很困惑为什么我不试试。。。谢谢如果userID作为密钥存在,则此答案将复制它。
data = {key1:'v1', key2:'v2'};

var mykey = 'key1'; 
data.mykey = 'newv1';
data[mykey] = 'newV2';

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

 for(var point in jsonData[0].data)
              { 
                y_axis_name.push(point);

              }