@Override
    public void read(Json json, JsonValue jsonData) {
        try {
            colors = json.readValue("colors", Array.class, jsonData);
            fonts = json.readValue("fonts", Array.class, jsonData);
            
            freeTypeFonts = json.readValue("freeTypeFonts", Array.class, new Array<FreeTypeFontData>(),jsonData);
            FileHandle previewFontsPath = Main.appFolder.child("preview fonts");
            var fontsList = previewFontsPath.list();
            
            for (var freeTypeFont : freeTypeFonts) {
                if (freeTypeFont.previewTTF != null) {
                    
                    boolean foundMatch = false;
                    for (var previewFile : fontsList) {
                        if (freeTypeFont.previewTTF.equals(previewFile.nameWithoutExtension())) {
                            foundMatch = true;
                            break;
                        }
                    }
                    
                    if (!foundMatch) {
                        freeTypeFont.previewTTF = previewFontsPath.list()[0].nameWithoutExtension();
                    }
                }
            }
            
            classStyleMap = new OrderedMap<>();
            for (JsonValue data : jsonData.get("classStyleMap").iterator()) {
                classStyleMap.put(ClassReflection.forName(data.name), json.readValue(Array.class, data));
            }
            
            for (Array<StyleData> styleDatas : classStyleMap.values()) {
                for (StyleData styleData : styleDatas) {
                    styleData.jsonData = this;
                }
            }
            
            customClasses = json.readValue("customClasses", Array.class, CustomClass.class, new Array<>(), jsonData);
        } catch (ReflectionException e) {
            Gdx.app.log(getClass().getName(), "Error parsing json data during file read", e);
            dialogFactory.showDialogError("Error while reading file...", "Error while attempting to read save file.\nPlease ensure that file is not corrupted.\n\nOpen error log?");
        }
    }
Called when project is opened from an SCMP file.
@param json
@param jsonData
core/src/com/ray3k/skincomposer/data/JsonData.java