javascript - 将响应字符串转换为对象
问题描述
我想要这个回应:
"socials": "Whatsapp_phone: 3413536723,Instagram: agusmac1,Linkedin: agusmac,Facebook: agusmac40"
是这样的:
socials={
Whatsapp: 3413536723,
Instagram: agusmac1,
Linkedin: agusmac,
Facebook: agusmac20}
我试过 JSON 解析,但我无法让它工作
解决方案
您可以首先通过将字符串包裹在花括号中并使用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)
推荐阅读
- instagram - Instagram 开发人员 - 错误 400,无效的客户端 ID
- css - 为什么当我从图标设置边距时,块会移动
- algorithm - 如何将十进制值转换为二进制位?
- java - JAVAFX:带参数的OnAction事件
- transactions - 以太坊合约所有者可以支付交易的gas吗?
- rest - 如何使用 sharepoint api 为另一个用户找出每个树元素(文件夹或文件)的权限?
- ionic4 - 电容livereload不工作
- php - 消息:数组到字符串的转换
- bouncycastle - 充气城堡签名算法问题从 1.48 移植到 1.60
- javascript - 无法测试 redux-observable 史诗