javascript 链式字符串转JSON。

已知字符串data.list.$items.gradeList.$items.desc如何转成

{
"data": {

"list": [
  {
    "gradeList": [
      {
        "desc": "9674"
      }
    ]
  }
]

}
}

这里边若字符串后面是$items则该属性是个数组。

阅读 1.8k
2 个回答
var str = 'data.list.$items.gradeList.$items.desc';
var item = '9674';
function exchange(str,item){
 str = str.split('.');
 var obj,flag = false;
 for(var i=str.length-1;i>=0;i--){
  obj={};
  str[i] == '$items'?(flag = true):
     (obj[str[i]]=flag?[item]:item,flag = false,item = obj);
 }
  return obj;
}
exchange(str,item);

a.list1.$items.b.list2.$items.c.d 转
{
a: {

list1: [
  {
    b:{
      list2:[
        {
          c:{
            d:'bug'
          }
        }
      ]
    }
  }
]

}
}
遇后面$items的话就是数组

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题