javascript - 将文本文件转成json数据并输出。

查看:310
本文介绍了javascript - 将文本文件转成json数据并输出。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

文本文件格式如下:
北京 2
河北 3
河北-邯郸 301
河北-保定 302
河北-邢台 303
山东 4
山东-青岛 401
山东-烟台 402

转换成类似如下的json,我只要该结果

const treeData = [{
  label: '河北',
  value: '3',
  key: '3',
  children: [{
    label: '邯郸',
    value: '301',
    key: '302',
  }, {
    label: '保定',
    value: '302',
    key: '302',
  }],
}]

解决方案

没做容错, 格式必须按上面的格式

var str = `北京 2
河北 3
河北-邯郸 301
河北-保定 302
河北-邢台 303
山东 4
山东-青岛 401
山东-烟台 402`;
var arrStr = str.split("\n");
var result = [];
arrStr.map(i => {
  let = item = i.split(" ");
  if (i.indexOf("-") == -1) {
    result.push({
      label: item[0],
      value: item[1],
      key: item[1],
      children: []
    })
  } else {
    let city = item[0].split("-");
    let cur = result.find(j => j.label == city[0])
    cur.children.push({
      label: city[1],
      value: item[1],
      key: item[1],
    })
  }
})
console.log(result)
console.log(JSON.stringify(result))

[
{"label":"北京","value":"2","key":"2","children":[]},
{"label":"河北","value":"3","key":"3","children":[
    {"label":"邯郸","value":"301","key":"301"},
    {"label":"保定","value":"302","key":"302"},
    {"label":"邢台","value":"303","key":"303"}
]},
{"label":"山东","value":"4","key":"4","children":[
    {"label":"青岛","value":"401","key":"401"},
    {"label":"烟台","value":"402","key":"402"}
]}
]

这篇关于javascript - 将文本文件转成json数据并输出。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆