提问者:小点点

尝试将此字符串转换为对象


我有这根绳子:

posts{id,title},posts2{id,title}

我想把它转换成一个对象:

{
  posts: [
    'id', 
    'title'
  ],
  posts2: [
    'id', 
    'title'
  ]
}

我被困在这里,我怎么能这么做?谢谢。。。。


共2个答案

匿名用户

假设字符串使用指定格式有效:

您可以将字符串拆分成成对的键列表项。然后,迭代它们并将它们插入到一个对象中,如下所示:

null

const stringify = string => {
  const obj = {};
  if(string) {
    const pairs = string.substring(0,string.length-1).split('},');
    pairs.forEach(pair => {
      const [key,value] = pair.split('{');
      obj[key] = value.split(",");
    });
  }
  return obj;
}

console.log( stringify('posts{id,title},posts2{id,title}') );
console.log( stringify('posts{id,title}') );
console.log( stringify('') );

匿名用户

这不是有效得字符串。你想要的东西只有硬编码才能实现。(不推荐)

可以使用将字符串解析(转换)为对象

json.parse(str)

和对象设置为字符串

json.stringify(对象)

null

let testObject = { posts: ['id', 'title'], posts2: ['id', 'title']}
console.log("Original Object: ", testObject);
let validString = JSON.stringify(testObject);
console.log("Valid String: ", validString);