更改没有键名的json值

Posted

技术标签:

【中文标题】更改没有键名的json值【英文标题】:Change json value without name of key 【发布时间】:2019-09-02 18:35:13 【问题描述】:

我正在使用编辑器数据表来创建我的网站。在将数据发送到表之前,我需要在客户端更改一个值。

当我点击提交按钮时,我会发送一个像 o.data.row_360.vinculos.salario 这样的 json 对象

我想做:o.data.row_360.vinculos.salario /= 100 将值除以 100。

这个很简单,但是我不知道第三个键(row_360)是什么,但它是随机的,比如:o.data.row_25.vinculos.salarioo.data.row_44.vinculos.salario

当我更改值而不知道第三个键名称是什么时,例如o.data.???.vinculos.salario

【问题讨论】:

o.data 有多少个键?只有一个还是有其他的?如果有多个,您要访问的有什么区别? @Phil o.data 只有一个键 【参考方案1】:

你可以使用下面的 sn-p 让它工作,

const o = 
  data: 
    row_25: 
      vinculos: 
        salario: 2000
      
    
  


var d = o.data;

for(let prop in d) 
    if(d[prop].vinculos) 
        d[prop].vinculos.salario /= 100;
        break;
    


console.log(o)

【讨论】:

我把你的答案变成了一个可运行的sn-p,希望你不要介意【参考方案2】:

由于o.data 中只有一个键,您可以使用Object.values() 检索一组值并访问第一个值,无需知道键

const o = 
  data: 
    mystery_key: 
      vinculos: 
        salario: 2000
      
    
  


Object.values(o.data)[0].vinculos.salario /= 100

console.info(o)

【讨论】:

对我来说太快了

以上是关于更改没有键名的json值的主要内容,如果未能解决你的问题,请参考以下文章

如何使用json方法解析android中没有键名的数组内的嵌套json编码数组?

如何解析具有动态键名的嵌套 json

从带有键名的 JSON 中提取值在 bigquery 中包含 #

在不知道键名的情况下访问 JSON 对象的元素

PHP json转换 无键名数据格式转换为有键名格式

如何使用 Angular 在 HTML 中访问没有键名的数组对象