【问题标题】:Converting an array of json objects to a 'readable' string?将 json 对象数组转换为“可读”字符串?
【发布时间】:2019-12-05 05:42:38
【问题描述】:

我有一个 json 对象数组,如下所示:

 [
  {id: "81238651", secondary_id: "P2087N", count: "2"},
  {id: "89581097", secondary_id: "P2087N", count: "2"}
 ]

我们的目标是获得可以在屏幕上或日志中漂亮打印的内容,例如最终字符串,如下所示:

 'id: '81238651', secondary_id: "P2087N", count: "2"\n
 id: '89581097', secondary_id: "P2087N", count: "2"'

虽然我可以遍历数组并使用 JSON.stringify() 将一些东西放在一起,但我想知道是否有更复杂的工具/包可以帮助解构和美化事物?

【问题讨论】:

  • 您是否正在寻找人们使用的公认包?还是只是一种简洁的管理方式?
  • 我想知道/希望有一个包可以提供帮助,但是您的 sn-p 非常有帮助。

标签: javascript node.js json


【解决方案1】:

易读的代码:

const arr = [
  {id: "81238651", secondary_id: "P2087N", count: "2"},
  {id: "89581097", secondary_id: "P2087N", count: "2"}
]

let finalStr = '';

for(let obj of arr) {
  Object.keys(obj).forEach(key => {
    finalStr += String(key + ': ' + obj[key] + ', ');
  });
  finalStr += '\n';
}

console.log(finalStr);

【讨论】:

    【解决方案2】:

    这将格式化出来,可以改变出你喜欢的图案。

    const rawObjects =  [
      {id: "81238651", secondary_id: "P2087N", count: "2"},
      {id: "89581097", secondary_id: "P2087N", count: "2"}
     ];
     
    const formatted = rawObjects.map(o => Object.keys(o)
                                .reduce((a, v, i) => a + `${v}: ${o[v]}${(i<Object.keys(o).length-1)?', ' : ''}`, ''))
                                .join('\n');
    
    console.log(formatted);

    【讨论】:

    • 显然这不是花哨的,可以在对象等上添加递归。
    猜你喜欢
    • 2013-08-29
    • 2012-05-08
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-12
    相关资源
    最近更新 更多