繁体   English   中英

如何将每个对象值从 json 推送到数组中?

[英]How to push each object value into array from json?

我有一个带有键值的 JSON 响应,例如:

....
    "usp-custom-90":"45.45257926613316,9.178168599999935"
....

注意usp-custom-90有破折号!

我需要类似的东西(字段不存在,这只是一个例子):

            data.forEach(({fields})=>{
              coordsB.push(
                ...fields['usp-custom-90']
              );
            });

其中 coordsB 是之前定义的数组。

json 将是:

],
      "usp-custom-90":"45.47841306255037,9.120865849999973",
      "_links":{  
         "self":[  
            {  
               "href":"https:\/\/www.example.it\/wp-json\/wp\/v2\/posts\/128402"
            }
         ],
         "collection":[  
            {  
               "href":"https:\/\/www.example.it\/wp-json\/wp\/v2\/posts"
            }
         ],
         "about":[  

我需要推动每个"usp-custom-90"

完整代码(错误,因为它使用了不存在的字段):

    fetch('https://www.example.it/wp-json/wp/v2/posts?per_page=50&status=publish')
      .then(res => res.json())
      .then(data =>{
        var coordsB = [];
        console.log(data);
        data.forEach(({fields})=>{
          coordsB.push(
            ...fields['usp-custom-90']
          );
        });

根据评论中链接的数据样本,该结构是一个对象数组,每个对象包含一个usp-custom-90属性。 对于数组的map操作符来说,这是一个完美的情况。

所以在上面的代码中,这一行将为您完成所有工作。 它将创建数组并用您要查找的所有值填充它。

var coordsB = data.map(x=> x["usp-custom-90"])

我想沿着这些路线会做一些事情。

Object.entries(object).reduce((ac,[k,v],i,a)=>(ac.push(v['usp-custom-90']),ac),[])

看起来从你的粘贴箱主对象是一个数组,里面有你想要的键的对象:

YourMainArray.reduce((ac,d,i,a)=>(ac.push(d['usp-custom-90']),ac),[])

测试了一下,给你这个:

["45.45257926613316,9.178168599999935", "45.47841306255037,9.120865849999973", "9.924,-84.090", "44.948,9.039", "45.464150416139695,9.1906395499999", "45.651,11.303", "43.83734441524854,7.905822499999999", "45.05926341591318,9.3354875", "44.872988115810074,13.85009094999998", "44.97805886586813,8.895478499999967", "45.472119466144186,9.173527250000006", "45.165,9.183", "41.937,12.441", "45.464993216140186,9.147909499999969", "45.48624411615216,9.16677489999995", "45.209,9.147", "45.464993216140186,9.147909499999969", "41.848264464222716,12.665936949999946", "45.464993216140186,9.147909499999969", "45.46851557705748,9.139416449999999", "44.507,11.314", "36.731,14.873", "36.222,-121.759", "10.093,77.060", "45.454327616134165,9.175796900000023", "45.469282816142574,9.176045000000045"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM