Erstellen von verschachtelten JSON CSV

Ich schon gelesen Erstellen von verschachtelten JSON von flachen csv, aber es hat nicht geholfen in meinem Fall.

Ich haben ein großes Arbeitsblatt, erstellt mit Google Docs, bestehend aus 11 Zeilen und 74 Spalten (einige Spalten sind nicht besetzt).

Ich ein Beispiel erstellt, auf Google Drive. Beim Export als CSV sieht es wie folgt aus:

id,name,email,phone,picture01,picture02,picture03,status
1,Alice,[email protected],2131232,"image01_01
[this is an image]",image01_02,image01_03,single
2,Bob,[email protected],2854839,image02_01,"image02_02
[description to image 2]",,married
3,Frank,[email protected],987987,image03_01,image03_02,,single
4,Shawn,[email protected],,image04_01,,,single

Nun würde ich gerne eine JSON Struktur, die wie folgt aussieht:

{
    "persons": [
        {
            "type": "config.profile",
            "id": "1",
            "email": "[email protected]",
            "pictureId": "p01",
            "statusId": "s01"
        },
        {
            "type": "config.pictures",
            "id": "p01",
            "album": [
                {
                    "image": "image01_01",
                    "description": "this is an image"
                },
                {
                    "image": "image_01_02",
                    "description": ""
                },
                {
                    "image": "image_01_03",
                    "description": ""
                }
            ]
        },
        {
            "type": "config.status",
            "id": "s01",
            "status": "single"
        },
        {
            "type": "config.profile",
            "id": "2",
            "email": "[email protected]",
            "pictureId": "p02",
            "statusId": "s02"
        },
        {
            "type": "config.pictures",
            "id": "p02",
            "album": [
                {
                    "image": "image02_01",
                    "description": ""
                },
                {
                    "image": "image_02_02",
                    "description": "description to image 2"
                }
            ]
        },
        {
            "type": "config.status",
            "id": "s02",
            "status": "married"
        }
    ]
}

Und so weiter für die anderen Zeilen.

Mein theoretischer Ansatz wäre durch die CSV Datei pro Zeile (hier beginnt das erste problem: jetzt jede Zeile entspricht einer Zeile, manchmal aber auch mehrere, so muss ich zähle die Kommas?). Jede Zeile entspricht einem block von config.profile einschließlich der id, email, pictureId, und statusId (die letzten beiden sind wird generiert je nach der Zeilennummer).

Dann für jede Zeile ein config.pictures block generiert wird, mit der gleichen id als eine eingefügt in die config.profile block. Die album ist ein array mit so vielen Elementen wie Bilder gegeben sind.

Schließlich jede Zeile hat eine config.status block, die, wieder, hat den gleichen id als der in config.profile, und ein Eintrag von status mit dem entsprechenden status.

Ich bin völlig ahnungslos, wie die verschachtelte und bedingte JSON-Datei.

Bekam ich nur zu dem Punkt, wo ich konvertieren Sie die CSV gültigen JSON ohne Verschachtelung und zusätzliche Infos, die nicht direkt in die CSV, wie die type, pictureId, statusId, und so weiter.

Jede Hilfe ist willkommen. Wenn es einfacher zu Programmieren, diese in einem anderen Skript-Sprache (wie ruby), würde ich gerne wechseln).

Bevor jemand denkt das ist eine Hausaufgabe oder ähnliches. Es ist nicht. Ich will einfach nur, um zu automatisieren, sonst sehr lästige copy&paste Aufgabe.

InformationsquelleAutor cherrun | 2013-06-11

Schreibe einen Kommentar