簡體   English   中英

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

[英]add key and value in json file using javascript

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"
     } 
 ]

您可以使用_.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> 

這為您提供了對象,因此您可以直接使用它:

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

否則,您可以獲取索引並更新整個對象。

const idx = _.findIndex(data, item => item.uid === 22222);
data[idx] = Object.assign(data[idx], {status: "USER"});

根據您所使用的環境,您不需要使用lodash,而可以只使用data.find

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

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

// get correct item in array
var item = arr.find(i => i.uid === 22222)
// object is mutable, array have a pointer to the object
item.status = 'USER'

console.log(arr)

這是一個可以玩的jsbin。

如果您在舊環境( 主要是Internet Explorer )中,請使用Array.prototype.filter

// will be undefined if not found, so check for that
var item = arr.filter(i => i.uid === 22222)[0]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM