首页 > 解决方案 > 将响应字符串转换为对象

问题描述

我想要这个回应: "socials": "Whatsapp_phone: 3413536723,Instagram: agusmac1,Linkedin: agusmac,Facebook: agusmac40"

是这样的:

 socials={
Whatsapp: 3413536723,
Instagram: agusmac1,
Linkedin: agusmac,
Facebook: agusmac20}

我试过 JSON 解析,但我无法让它工作

标签: javascript

解决方案


您可以首先通过将字符串包裹在花括号中并使用JSON.parse.

然后,您可以用逗号分隔生成的对象的socials属性,用冒号(带map)分隔每个单独的项目,然后使用Object.fromEntries

const str = `"socials": "Whatsapp_phone: 3413536723,Instagram: agusmac1,Linkedin: agusmac,Facebook: agusmac40"`

const obj = JSON.parse('{' + str + '}')
obj.socials = Object.fromEntries(obj.socials.split(",").map(e => e.split(":")))

console.log(obj)

如果要修剪值,可以使用String.trim()

const str = `"socials": "Whatsapp_phone: 3413536723,Instagram: agusmac1,Linkedin: agusmac,Facebook: agusmac40"`

const obj = JSON.parse('{' + str + '}')
obj.socials = Object.fromEntries(obj.socials.split(",").map(e => (arr = e.split(":"), arr[1] = arr[1].trim(), arr)))

console.log(obj)


推荐阅读