微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何创建JSON对象的文件夹名称和文件名称视图

如何解决如何创建JSON对象的文件夹名称和文件名称视图

我有一个像这样的JSON文件

{
    "Sheet1": [
        {
            "Folder name": "Folder 1","Filename": "1- Introduction.mp4",},{
            "Filename": "2- Prerequisites.mp4",{
            "Filename": "4- What is React Native.mp4",{
            "Folder name": "Folder 2","Filename": "1- KNowledge.mp4",{
            "Filename": "2- Exercise.mp4",]
 }

如何使它像这样:

{
  "Folder 1": [
           {
            "Filename": "1- Introduction.mp4",}
           ],"Folder 2": [
           {
            "Filename": "1- KNowledge.mp4",}
           ]
}

我对JSON有新知识,但是我知道Python字典。我试图在Python中执行此操作,但是无法做到这一点。 任何帮助将不胜感激。

解决方法

如Taplar所指出的,没有JSON中的键,您将无法创建对象值。您可以改用对象数组。

我正在考虑该文件夹将始终在数组的第一个元素中定义,而仅带有“ Filename”键的下一个对象将在先前定义的文件夹中。然后,当找到另一个文件夹时,下一个文件将位于新文件夹中。

请记住,您可以使用此功能:

const fs = require('fs');

function mapFolderStructure(json) {
    const object = JSON.parse(json);
    const returnObject = {};
    let currentFolder = null;
    
    for (const key in object) {
        returnObject[key] = {};
        for (const item of object[key]) {
            if (item.hasOwnProperty('Folder name')) {
                currentFolder = item['Folder name'];
            }
            
            if (currentFolder) {
                if (!returnObject[key][currentFolder]) returnObject[key][currentFolder] = [];
                returnObject[key][currentFolder].push({ Filename: item.Filename });
            }
        }
    }

    return JSON.stringify(returnObject,null,4);
}

const inputJson = fs.readFileSync('path/to/input','utf8');

const outputJson = mapFolderStructure(inputJson);

fs.writeFileSync('path/to/output',outputJson);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。