将字符串拆分为对象JavaScript

时间:2019-03-08 01:39:04

标签: javascript json string object

我有这个字符串result:tie,player:paper,computer:paper

我想您可以拆分成数组并创建一个对象并将其解析为对象,但这似乎不是一个好方法。

我如何将这个字符串作为对象?

let string = "result:tie,player:paper,computer:paper"

3 个答案:

答案 0 :(得分:1)

对于这个特定的字符串,我可以通过用" s包围键和值,然后使用JSON.parse将字符串转换为正确的JSON:

const string = "result:tie,player:paper,computer:paper";
const json = '{' + string.replace(/(\w+):(\w+)/g, `"$1":"$2"`) + '}';
console.log(JSON.parse(json));

尽管,理想情况下,无论为您提供什么服务,该字符串都应该为您提供JSON格式的内容,而不是强迫您诉诸于这种骇人听闻的方法来处理输入中断。 >

答案 1 :(得分:1)

,上拆分以获取key:value标记,在:上拆分以获取键和值,然后将它们添加到收集键值对的简化对象中。

var temp = "result:tie,player:paper,computer:paper";

var obj = temp.split(',').reduce((result, token)=>{
  var [key, value] = token.split(':');
  
  result[key] = value;
  return result;
}, {});

console.log(obj);

答案 2 :(得分:1)

,上分割,遍历并在:上分割每个字符串,并基于该字符串创建对象键/值属性。为简化起见,使用解构:

let string = "result:tie,player:paper,computer:paper";
let obj = {};
let propsArr = string.split(",");
propsArr.forEach(s => {
  var [key, value] = s.split(":");
  obj[key] = value;
});

console.log(obj);