创建和更新JSON

时间:2010-10-10 15:28:48

标签: javascript json

我可以像这里一样创建一个Json对象 How to create json by javascript for loop? 大! 我创建了一个如下

[
    {
        "id": "10",
        "userName": "kuttan" 
    },
    {
        "id": "11",
        "userName": "kunjan" 
    }
]

假设我想将ID为10的用户名更新为“新名称” 我该怎么办?(我不知道索引是1)

2 个答案:

答案 0 :(得分:1)

遍历对象数组(因为它就是这样),并检查每个对象的“id”属性。

var list =  [ { "id": "10", "userName": "kuttan" }, { "id": "11", "userName": "kunjan" } ];

for (var i=0;i<list.length;i++) {
  if (list[i].id == "10") {
    alert(i);
  };
};

然后你可以将它抽象成一个很好的函数。

function findIndexById(list, id) {
  for (var i=0;i<list.length;i++) {
    if (list[i].id == id) {
      return i;
    };
  };  

  return -1;
};

然后按如下方式使用:

var list =  [ { "id": "10", "userName": "kuttan" }, { "id": "11", "userName": "kunjan" } ];
var index = findIndexById(list, "10");

if (index !== -1) {
  list[index].userName = "new username";
};

答案 1 :(得分:0)

您可以遍历数组并检查当前迭代中对象的id属性。如果是10,请将新用户名分配给userName

var json = [ { "id": "10", "userName": "kuttan" }, { "id": "11", "userName": "kunjan" } ],
    len = json.length,
    obj;

while(len--) {
  obj = json[len];
  if (obj.id == 10) {
      obj.userName = 'foobar';
  }
}

console.log(json); // outputs [{id:"10", userName:"foobar"}, {id:"11", userName:"kunjan"}]