【问题标题】:How to get object titles from JSON? [duplicate]如何从 JSON 中获取对象标题? [复制]
【发布时间】:2019-01-28 13:41:26
【问题描述】:

我有一些来自 url 的 json 文件,我想对其进行格式化。 问题是我不知道如何只获取这些对象的标题。 我认为它应该看起来像: 1. 获取 JSON 2. 从此 json 中创建一个仅包含标题“C-402-621、C-393-643、C-389-643...”的数组。

这里是 JSON

{  
   "data":{  
      "C-402-621":[  
         23944,
         21469,
         10160,
         "abc",
         0,
         0,
         ""
      ],
      "C-393-643":[  
         31424,
         21469,
         10160,
         "def",
         0,
         0,
         ""
      ],
      "C-389-643":[  
         31713,
         21469,
         10160,
         "gfd",
         0,
         0,
         ""
      ],
... and it goes like this 100+ times till end.

例如我想要的结果如下:

"402|621 393|643 389|643 ..."

【问题讨论】:

    标签: javascript arrays json object


    【解决方案1】:

    您可以使用forEach 循环和字符串操作。首先使用Object.keys 我们得到data object 的所有密钥。然后可以逐个迭代这些键,使用substr,我们可以删除前3个字符,使用replace,我们可以将-替换为|

    var a=[{  
       "data":{  
          "C-402-621":[  
             23944,
             21469,
             10160,
             "abc",
             0,
             0,
             ""
          ],
          "C-393-643":[  
             31424,
             21469,
             10160,
             "def",
             0,
             0,
             ""
          ],
          "C-389-643":[  
             31713,
             21469,
             10160,
             "gfd",
             0,
             0,
             ""
          ]}}]
         var data=Object.keys(a[0].data)
         data.forEach((e)=>{data[data.indexOf(e)]=e.substr(2).replace('-','|')})
         console.log(...data)

    【讨论】:

      【解决方案2】:
      1. 首先,您需要密钥(在data 子对象中)。
      2. 其次,您需要用破折号分隔每个键。
      3. 接下来你需要抓住尾巴(忽略“C”)
      4. 然后用管道连接这些值。
      5. 最后,您可以将处理后的键与空格连接起来。

      var jsonData = {
        "data": {
          "C-402-621": [
            23944,
            21469,
            10160,
            "abc",
            0,
            0,
            ""
          ],
          "C-393-643": [
            31424,
            21469,
            10160,
            "def",
            0,
            0,
            ""
          ],
          "C-389-643": [
            31713,
            21469,
            10160,
            "gfd",
            0,
            0,
            ""
          ]
        }
      };
      
      console.log(Object.keys(jsonData.data).map(x => x.split('-').splice(1).join('|')).join(' '));
      .as-console-wrapper { top: 0; max-height: 100% !important; }

      【讨论】:

        【解决方案3】:

        你可以在nodejs中创建一个脚本来读取文件的内容,将它保存在一个变量中,然后在下面的函数中传递它们

        var obj = { data: { .... } };
        var keys = Object.keys(obj.data);
        

        现在 keys 包含对象中所有键的数组。要像您的示例一样打印它,您可以这样做

        console.log(keys.join("|");
        //"402|621 393|643 389|643 ..."
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-04-27
          • 2020-05-20
          • 1970-01-01
          • 1970-01-01
          • 2013-08-07
          • 2019-08-18
          • 1970-01-01
          • 2016-04-30
          相关资源
          最近更新 更多