【问题标题】:Convert json object from array of objects to string in JAVASCRIPT [duplicate]将json对象从对象数组转换为JAVASCRIPT中的字符串[重复]
【发布时间】:2020-09-22 21:21:11
【问题描述】:

我有一个这样的 json:

 [ {"numbers":["1","2","3","4"], 
    "city":"Tokio", 
    "color":"blue", 
   }, 

   {"numbers":["5","6","7","8"],
    "city":"Tokio",
     "color":"green", 
   }, 
    ......... 
 ]

我需要用这样的javascript转换成另一个json:

[ {"numbers":"1,2,3,4", 
    "city":"Tokio", 
    "color":"blue", 
   }, 

   {"numbers":"5,6,7,8",
    "city":"Tokio",
     "color":"blue", 
   }, 
    ......... 
 ]

所以,我需要将数字数组转换为字符串,知道吗? 提前致谢。

【问题讨论】:

  • 你拥有的,不是 JSON,也不是你想要得到的代码。
  • json 解析后跟 arr.join()
  • @guilieen ,根据您的评论,我有第二个答案。请看一下,如果它正在解决您的问题,请接受答案并投票。它会帮助其他人
  • @AnaSvitlica 和 Pramod Kharade 两个答案都是正确的,但恐怕我只能选择一个并保留最旧的一个。谢谢!

标签: javascript


【解决方案1】:

对于数组使用这个:

const jsonObjArray = [
  {
         "numbers":["1","2","3","4"],
         "city":"Tokio",
         "color":"blue"
  },
  {
         "numbers":["1","2","3","4"],
         "city":"New York",
         "color":"red"
  },
  {
         "numbers":["1","2","3","4"],
         "city":"Rome",
         "color":"green"
  }
]

const result = [];
jsonObjArray.map( item => {
  const numbers = item["numbers"];
  let numbersAsString = numbers.join(",");
  result.push({...item, numbers: numbersAsString});
});
    
console.log(result)

【讨论】:

  • @AnaSvitlica Asker 想要在从数组转换字符串后对 JSON 进行编码,您的不完整请编辑您的答案以避免投票。谢谢
【解决方案2】:

答案 1:

const data ={"numbers":["1","2","3","4"],
 "city":"Tokio",
 "color":"blue",
};
let modifyResult={}
for (const key in data) {
      if (data.hasOwnProperty(key)) {
      
      if(key==="numbers"){
      
      modifyResult[key]= data["numbers"].join(", ");
      
      }else{
      modifyResult[key]= data[key];
      }
        
        
      }
    }
    console.log("Final:",modifyResult);

希望,这会解决您的问题。

输出屏幕截图:

答案 2:

根据您的评论,您想用它们的键转换对象数组,所以我提供第二个答案

const data = [ {"numbers":["1","2","3","4"], "city":"Tokio", "color":"blue", }, {"numbers":["5","6","7","8"], "city":"Tokio", "color":"green", }];

const finalresult = data.map(item => {
    letcontainer = {};
    container = {...item};
    container.numbers = item.numbers.join(", ");

    return container;
})

console.log(finalresult);

输出屏幕截图:

【讨论】:

  • 是的,它有效,但我忘记了我的 json 也是一个数组......我认为只是添加一个 for 循环,但可能是最好的解决方案?这是 mi json: [ {"numbers":["1","2","3","4"], "city":"Tokio", "color":"blue", }, {"numbers ":["5","6","7","8"], "city":"Tokio", "color":"green", }, ......... ]跨度>
  • 有问题的是,您已经提供了作为对象,并且在此对象的注释数组中。您需要更正您的问题。
猜你喜欢
  • 1970-01-01
  • 2014-08-20
  • 2011-05-21
  • 2020-11-15
  • 1970-01-01
  • 1970-01-01
  • 2012-05-08
  • 2020-02-06
  • 2015-04-21
相关资源
最近更新 更多