gpt4 book ai didi

javascript - angularjs - javascript - 将对象值从字符串转换为数组结构

转载 作者:行者123 更新时间:2023-12-03 06:24:12 25 4
gpt4 key购买 nike

我正在研究用js转换json的一些复杂情况,我遇到了这样的情况:

我得到了这个:

{
"page": "POST,PUT:122",
"news": "PUT"
}

我想转换成这样:

{
"page": {
"POST": [
"POST"
],
"PUT": 122
},
"news": {
"PUT": [
"PUT"
]
}
}

我已经使用 @RomanPerekhrest 的这个出色解决方案在恢复案例上进行了此转换,我想恢复相同的结构,但我尝试了几种方法但没有成功,Roman 的解决方案:

var obj = {
"page": {
"POST": [
"POST"
],
"PUT": 122
},
"news": {
"PUT": [
"PUT"
]
}
};

Object.keys(obj).forEach(function (k) {
var innerKeys = Object.keys(obj[k]), items = [];
innerKeys.forEach(function(key) {
items.push((Array.isArray(obj[k][key]))? key : key + ":" + obj[k][key]);
});
obj[k] = items.join(",");
});

console.log(JSON.stringify(obj, 0, 4));

最佳答案

var obj = {
"page": "POST,PUT:122",
"news": "PUT"
};
var rez={};
Object.keys(obj).forEach(function(key){
obj[key].split(",").forEach(function(value){
var item = value.split(":");
var obj=rez[key] || {};
if (item.length>1){
obj[item[0]]=isNaN(Number(item[1])) ? item[1] : Number(item[1]);
rez[key]=obj;
}else{
obj[item[0]]=[item[0]];
rez[key]=obj;
}
});
});
console.log(rez);

关于javascript - angularjs - javascript - 将对象值从字符串转换为数组结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38721814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com