使用 Javascript 更新 JSON 对象

如何使用 javascript 或 Jquery 动态更新以下 JSON 对象?

var jsonObj = [{'Id':'1','Username':'Ray','FatherName':'Thompson'},  
               {'Id':'2','Username':'Steve','FatherName':'Johnson'},
               {'Id':'3','Username':'Albert','FatherName':'Einstein'}]

我想将用户名动态更新为 'Thomas',其中的 'Id'是 '3'。

我该如何实现?

解决办法

假设 jsonObj 已包含 JSON,则可使用纯 JavaScript 解决方案:

在其中循环查找匹配的 Id,设置相应的用户名,并在匹配项被修改后跳出循环:

for (var i = 0; i < jsonObj.length; i++) {
  if (jsonObj[i].Id === 3) {
    jsonObj[i].Username = "Thomas";
    break;
  }
}

[这里是 jsFiddle。][1]

下面是用函数封装的相同内容:

function setUsername(id, newUsername) {
  for (var i = 0; i < jsonObj.length; i++) {
    if (jsonObj[i].Id === id) {
      jsonObj[i].Username = newUsername;
      return;
    }
  }
}

// Call as
setUsername(3, "Thomas");
评论(2)

只需遍历列表,然后检查每个对象的属性即可。

for (var i = 0; i < jsonObj.length; ++i) {
    if (jsonObj[i]['Id'] === '3') {
        jsonObj[i]['Username'] = 'Thomas';
    }
}
评论(0)

使用:

var parsedobj = jQuery.parseJSON( jsonObj);

这只有在不需要格式保持为字符串时才有用。 否则,您必须使用 JSON 库将其转换回 JSON 格式。

评论(0)