【问题标题】:Add or change a value of JSON key with jQuery or JavaScript使用 jQuery 或 JavaScript 添加或更改 JSON 键的值
【发布时间】:2010-12-13 15:07:59
【问题描述】:

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

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

这就是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":""
}  

【问题讨论】:

  • 如果您使用data.keyName 访问这些值,您将不再拥有JSON 字符串。你有一个 JavaScript 对象。 JSON 已经为您解析成一个对象。
  • 感谢您的解释,Ates。我对此感到困惑。

标签: javascript json jquery


【解决方案1】:

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

data.busNum = 12345;
...

【讨论】:

  • 我为什么不尝试...谢谢!
【解决方案2】:
var temp = data.oldKey; // or data['oldKey']
data.newKey = temp;
delete data.oldKey;

【讨论】:

    【解决方案3】:

    看来您的密钥是否保存在变量中。 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"
    }
    

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:
        data.userID = "10";
        

        【讨论】:

        • 如果 userID 作为键存在,则此答案将复制它。
        【解决方案6】:
        var y_axis_name=[];
        
         for(var point in jsonData[0].data)
                      { 
                        y_axis_name.push(point);
        
                      }
        

        y_axis_name 包含所有键名

        试试jsfiddle

        【讨论】:

          【解决方案7】:

          您只需像普通的 javascript 变量一样设置数据值 例如:

          data["userID"] = 4; // or data.userID = 4
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-11-10
            • 2020-05-03
            • 2012-11-06
            • 2012-04-15
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多