将JSON解析为格式化的文本文件

时间:2019-05-09 05:30:32

标签: javascript jquery json parsing

早安, 我想将json数据文件转换为简单的文本文件列表,然后
我在解析数据方面经验不足,如何在jquery中做到这一点? 下面的示例只是一个示例:

我希望得到类似于以下子树视图的输出:

物品

  • 绝望之刃

    • 军团剑
    • 强匕首
    • 迅捷匕首
  • 腐蚀镰刀

    • 食人魔战斧
    • 长矛
    • 活力水晶
  • 血翅

    • 魔术棒
    • 神秘手抄本

等等...

PS:然后,我会找到一种方法来将该列表格式化为数据表

提前谢谢!

2 个答案:

答案 0 :(得分:1)

让我们拥有如下格式的request.json数据:

  {
 "data": [
 {
  "value1": "legion sword",
  "value2": "Ogre Tomahawk",
  "value3": "Magic Wand"
 }, {
  "value1": "Strong Dagger",
  "value2": "Regular Spear",
  "value3": "Mystery Codex"
 }]
    }

强文本 步骤1- 创建一个像这样的表:

<table id="datatable">
        <thead>
            <tr>
                <th>Blade of Despair</th>
                <th>Corrosion Scythe</th>
                <th>Blood Wings</th>
            </tr>
        </thead>
</table>

Step2- 将该json数据与数据表一起使用,如下所示:

$(document).ready(function() {
    $('#datatable').DataTable( {
        "ajax": "request.json",
        "columns": [
            { "data": "value1" },
            { "data": "value2" },
            { "data": "value3" }
        ]
    } );
} );

答案 1 :(得分:0)

这更多是Node的文件系统(fs)模块的任务。这是您所要询问的非常简单的示例。 path模块用于提供所需资源的绝对路径。 __dirname是一个内置帮助程序,它引用当前javascript文件所在的目录。因此,该示例假定data.jsonindex.js文件位于同一目录中。

首先使用fs.readFile读取JSON文件。读取JSON文件后,需要将其解析为人类可读的形式。在这里,您可以使用模板字符串设置格式,也可以使用制表符和换行符。格式将保留到您用data.txt创建的fs.writeFile文件中。

示例数据

{
  "title": "Items",
  "items": [
    {
      "subTitle": "Blade of Despair",
      "subItems": ["Legion Sword", "Strong Dagger", "Swift Dagger"]
    }
  ]
}

示例代码

const fs = require("fs")
const path = require("path")

fs.readFile(path.join(__dirname, "data.json"), (error, data) => {
  const parsed = JSON.parse(data)

  function itemize(obj) {
    var s = ""
    s += `${obj.title}\n`
    obj.items.forEach(el1 => {
      s += `\t- ${el1.subTitle}\n`
      el1.subItems.forEach(el2 => {
        s += `\t\t- ${el2}\n`
      })
    })
    return s
  }
  const str = itemize(parsed)

  fs.writeFile(path.join(__dirname, "data.txt"), str, error => {
    console.log(error)
  })
})

示例输出

Items
    - Blade of Despair
        - Legion Sword
        - Strong Dagger
        - Swift Dagger

代码沙箱

https://codesandbox.io/s/qlyn0pk9r9

相关问题