使用javascript在json文件中添加键和值

时间:2017-06-20 14:11:27

标签: javascript json lodash

data.json看起来像

 [
     {
         "uid": 11111,
         "status": "ADMIN"
     },
     {
         "uid": 22222
     } 
 ]

我使用lodash找到密钥uid = 22222

  

_。find(data,(item)=> item.uid === 22222)

结果是{uid:22222}

我如何添加一些状态:"值"结果我找到了lodash 我希望像这样

[
     {
         "uid": 11111,
         "status": "ADMIN"
     },
     {
         "uid": 22222,
         "status": "USER"
     } 
 ]

3 个答案:

答案 0 :(得分:1)

您可以使用_.find()来获取对象,并_.set()进行更新:

var data = [{"uid":11111,"status":"ADMIN"},{"uid":22222}];

_.set(_.find(data, function(obj) { return obj.uid === 22222; }), 'value', 'USER');

_.set(_.find(data, function(obj) { return obj.uid === 23322; }), 'value', 'USER'); // no object was found and nothing changed
  
console.log(data);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

答案 1 :(得分:0)

这为您提供了对象,因此您可以直接使用它:

plotOptions

否则,您可以获取索引并更新整个对象。

_.find(data, item => item.uid === 22222).status = "USER";

根据您工作的环境,您不需要使用lodash,只需使用const idx = _.findIndex(data, item => item.uid === 22222); data[idx] = Object.assign(data[idx], {status: "USER"});

答案 2 :(得分:0)

您不需要lodash,请使用Array.prototype.find

getCredentials

Here is a jsbin to play around.

如果您身处旧环境(Internet Explorer mostly),请使用Array.prototype.filter

email