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

标签 javascript arrays json string object

我正在研究用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/

相关文章:

javascript - 卡牌游戏拖放

javascript - 无法从 URL 更改的下拉列表中获取值

json - 如何从变量正确构建和附加 json 文件

json - 实现自定义Newtonsoft JsonConverter(阅读器)

json - Meteor.http.call(调用URL API)

javascript - 由于 node.js 延迟响应导致连接超时

javascript - bing map ajax v7 聚类

java - 需要帮助解释该程序的结果

arrays - 按日期对数组中的对象排序

javascript - 删除节点元素而不删除innerHTML