JS中将特定格式的字符串转化为json格式的问题

一段字符串如下:
表名1@字段1~表名1@字段2~表名2@字段1~表名2@字段2

如何将其合理地处理为json格式

 {
     表名1:[字段1,字段2],
     表名2:[字段1, 字段2]
 }
阅读 2.1k
2 个回答
var str = '表名1@字段1~表名1@字段2~表名2@字段1~表名2@字段2'

var obj = str.split('~').reduce((state, item) => {
  var [tname, fname] = item.split('@')
  if (state[tname]) {
    state[tname].push(fname)
  } else {
    state[tname] = [fname]
  }
  return state
}, {})

大概就这样吧

var str='表名1@字段1~表名1@字段2~表名2@字段1~表名2@字段2'
var arr=str.split("~")
var obj={}
for(var i=0;i<arr.length;i++){ 
  var temp=arr[i].split("@")
  var key=temp[0]
  var value=temp[1]
  obj[key]=(obj[key]||[]).concat([value])
}
console.log(JSON.stringify(obj))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题