JSON-Datei erzeugen und wieder einlesen

Funktionen, Klassen, Prototypes, Libraries, Problemlösungen
Antworten
wernerperplies
Beiträge: 250
Registriert: 6. Aug 2011, 17:48
Wohnort: 18374 Zingst
Kontaktdaten:

JSON-Datei erzeugen und wieder einlesen

Beitrag von wernerperplies » 6. Jul 2018, 09:59

Mit dem JSON-Format lassen sich JavaScript-Objekte bequem serialisieren, in Dateien als Text speichern und wieder in ein Javascript-Objekt zurückverwandeln.

Im folgenden Script zeige ich Ihnen, wie Sie mit den beigefügten Modulen ein JavaScript-Objekt einfach in eine Datei speichern und wieder einlesen können.

Code: Alles auswählen

// DESCRIPTION test of my JSON modules - writes and rereads a JavaScript object
// Dateiname: wpsTestJsonModules.jsx
// © 2018 by Werner Perplies, EDV-Anwendungsberatung,
// https://www.weepee.de, email: werner.perplies@weepee.de
// Version: 1.0
// created:  Fri Jul 06 2018 09:08:19 GMT+0200
// [end of header]

// This script uses the following modules:
// wpsReadJsonObject.jsx, wpsWriteJsonObject.jsx, classJsonParser.jsx, wpsWriteString2File.jsx, wpsReadFile2String.jsx, wpsPrototypesTrim.jsx
// store this files in the folder of the main module

 #include "wpsReadJsonObject.jsx"; 
 #include "wpsWriteJsonObject.jsx";

 main();

 /*Void*/function main()
 {
    try
    {
        var /*Object*/testObject = {name: "testObject", author: "Werner Perplies", www: "https://weepee.de", forum: "https://www.weepee.de/forum/indesign/"},
            /*Object*/testObjectFormFile = null;

        // wpsWriteJsonObject(/*String*/fileName, /*Any*/content, /*String*/comment,  /*String*/space, /*String*/encoding)
        // wpsWriteJsonObject(File("~/Desktop/Test.json"), testObject, "// Dies ist ein Kommentar", "   ");
        // wpsWriteJsonObject(File("~/Desktop/Test.json"), testObject, "// Dies ist ein Kommentar") ;
        // wpsWriteJsonObject(File("~/Desktop/Test.json"), testObject, undefined, "   ") ;
        wpsWriteJsonObject(File("~/Desktop/Test.json"), testObject) ;
        testObjectFormFile = wpsReadJsonObject(File("~/Desktop/Test.json"));
        alert(testObjectFormFile.name);
    }
    catch (error)
    {
        alert(error.message + "\nin line: " + error.line + "\nFile: " + error.fileName);
    }
 }


Inhalt der erzeugten Textdatei:

Code: Alles auswählen

{"name":"testObject","author":"Werner Perplies","www":"https://weepee.de","forum":"https://www.weepee.de/forum/indesign/"}
Varianten der JSON-Serialisierung:
  • wpsWriteJsonObject(File("~/Desktop/Test.json"), testObject, "// Dies ist ein Kommentar");

    Code: Alles auswählen

    // Dies ist ein Kommentar
    {"name":"testObject","author":"Werner Perplies","www":"https://weepee.de","forum":"https://www.weepee.de/forum/indesign/"}
    Achtung! Das Ergebnis entspricht nicht dem JSON-Standard.
  • wpsWriteJsonObject(File("~/Desktop/Test.json"), testObject, "// Dies ist ein Kommentar", " ");

    Code: Alles auswählen

    // Dies ist ein Kommentar
    {
       "name": "testObject",
       "author": "Werner Perplies",
       "www": "https://weepee.de",
       "forum": "https://www.weepee.de/forum/indesign/"
    }
    Achtung! Das Ergebnis entspricht nicht dem JSON-Standard.
  • wpsWriteJsonObject(File("~/Desktop/Test.json"), testObject, undefined, " ");

    Code: Alles auswählen

    {
       "name": "testObject",
       "author": "Werner Perplies",
       "www": "https://weepee.de",
       "forum": "https://www.weepee.de/forum/indesign/"
    }
Allle notwendigen Module finden Sie in der Zip-Datei.

Download (erfordert Anmeldung/Registrierung im Forum): wpsTestJsonModules.zip (Version 1.0 vom 6.07.2018)
einen schönen Tag wünscht

Werner Perplies
https://www.weepee.de

Antworten

Zurück zu „Snippets und Libs“