如何从JSON获取对象标题?

时间:2019-01-28 13:41:27

标签: javascript arrays json object

我有一些要格式化的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 ..."

3 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

您可以在nodejs中创建一个脚本,以读取文件的内容,将其保存在变量中,然后将其传递给以下函数

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

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

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

答案 2 :(得分:0)

  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; }

相关问题