所以我在'user.name.firstName=Anatoliy&user.name.lastName=Klimov&user.vip=true'下面有一个字符串
我必须把它解析成看起来像
{
"user": {
"name": {
"firstname": "",
"lastname": ""
{
"vip": true
}
}发布于 2022-09-02 11:19:49
这里有个方法
const data = 'user.name.firstName=Anatoliy&user.name.lastName=Klimov&user.vip=true';
const constructObject = (str) => {
const paths = str.split('&');
const result = {};
paths.forEach((path) => {
const [keyStr, value] = path.split('=');
const keys = keyStr.split('.');
let current = result;
for (let i = 0; i < keys.length - 1; i++) {
if (!current[keys[i]]) {
current[keys[i]] = {};
}
current = current[keys[i]];
}
current[keys.pop()] = value;
});
return result;
};
console.log(constructObject(data));
发布于 2022-09-02 11:22:08
有一个函数JSON.parse()可以将字符串转换为对象。
您可以在网上搜索如何设置此函数的字符串格式,但下面有一个可能会有所帮助的示例。
var thestring = '{"Name":"Jon Doe","Email":"jon@doe.com","Address":"123 Doe Street"}'
var theobj = JSON.parse(thestring);其结果是:
{
Name: "Jon Doe",
Email: "jon@doe.com",
Address: "123 Doe Street"
}https://stackoverflow.com/questions/73581673
复制相似问题