JSONObject如何根据键值更改值?

时间:2018-01-15 08:47:11

标签: javascript json

我是这样的json:

[
    {
        "pages": "foo1",
        "hasil": ""
    },
    {
        "pages": "foo2",
        "hasil": ""
    },
    {
        "pages": "foo3",
        "hasil": ""
    },
    {
        "pages": "foo4",
        "hasil": ""
    },
    {
        "pages": "foo5",
        "hasil": ""
    },
    {
        "pages": "foo6",
        "hasil": ""
    }
]

所以我想根据hasil值更改pages键的值, 我怎么能这样做?

编辑清楚询问

我想更改特定json键的值,如下所示:

[
    {
        "pages": "foo1",
        "hasil": ""
    },
    {
        "pages": "foo2",
        "hasil": ""
    },
    {
        "pages": "foo3",
        "hasil": ""
    },
    {
        "pages": "foo4",
        "hasil": ""
    },
    {
        "pages": "foo5",
        "hasil": ""
    },
    {
        "pages": "foo6",
        "hasil": "1"
    }
]

研究:w3schoolSOF

3 个答案:

答案 0 :(得分:0)

尽管我理解你的问题,你还在寻找这样的东西吗?

var data = [
    {
        "pages": "foo1",
        "hasil": ""
    },
    {
        "pages": "foo2",
        "hasil": ""
    },
    {
        "pages": "foo3",
        "hasil": ""
    },
    {
        "pages": "foo4",
        "hasil": ""
    },
    {
        "pages": "foo5",
        "hasil": ""
    },
    {
        "pages": "foo6",
        "hasil": ""
    }
];

for(let key in this.data){
  if(this.data[key].pages == 'foo1'){
    this.data[key].hasil = 'hello';
  }
}
console.log(data);

答案 1 :(得分:0)

您可以使用find;



var array = [
    {
        "pages": "foo1",
        "hasil": ""
    },
    {
        "pages": "foo2",
        "hasil": ""
    },
    {
        "pages": "foo3",
        "hasil": ""
    },
    {
        "pages": "foo4",
        "hasil": ""
    },
    {
        "pages": "foo5",
        "hasil": ""
    },
    {
        "pages": "foo6",
        "hasil": ""
    }
];

var foundItem = array.find(function(element) {
  return element.pages == "foo5";
});
foundItem.hasil = "123";
console.log(array);




答案 2 :(得分:-1)

迭代json对象并根据您的要求应用hasil:

var data = [
    {
        "pages": "foo1",
        "hasil": ""
    },
    {
        "pages": "foo2",
        "hasil": ""
    },
    {
        "pages": "foo3",
        "hasil": ""
    },
    {
        "pages": "foo4",
        "hasil": ""
    },
    {
        "pages": "foo5",
        "hasil": ""
    },
    {
        "pages": "foo6",
        "hasil": ""
    }
];

for(let obj of data){
  let pages = obj['pages'];
  if (pages.includes('foo')) {
    obj['hasil'] = "h" + pages;
  }
}

console.log(data);