Цель проекта:Обеспечить хранение настроек приложения в JSON формате.
Qt JSON parser and serializer (qlalr based)
Girish Ramakrishnan
http://git.forwardbias.in/?p=qjsonparser.gitЗа что ему огромное спасибо.
Как использовать:Скачайте с gitorious'а.
git clone —depth 1
http://git.gitorious.org/qtjsonsettings/qtjsonsettings.gitПодключите в проект.
CMake
Будет присоединен как статическая библиотека.
add_subdirectory(~/projects/qtjsonsettings ${CMAKE_CURRENT_BINARY_DIR}/qtjsonsettings)
include_directories(~/projects/qtjsonsettings)
target_link_libraries(${PROJECT_NAME} ${QT_LIBRARIES}
qtjsonsettings)
QMake
Будут добавлены файлы с исходным кодом.
include(~/projects/qtjsonsetting/qtjsonsettings.pri)
Где-то в коде:
#include "qtjsonsettings.h"
QSettings *settings = new QtJsonSettings("parameters.json");
Возможно также использование JSON сериализатора для QVariant без использования QtJsonSettings, например так:
#include "json.h"
QVariantMap map;
map["key1"] = "value1";
QVariantMap subMap;
subMap["key2"] = "value2";
map["sub_map"] = subMap;
QVariantList list;
list.append("1243");
map["list"] = list;
QString result = Json::stringify(map); // Json::prettyStringify(map, 4);
map = Json::parse(result);
Преимущества JSON перед другими форматами:
Лучшая читабельность файла настроек.
Сериализация и десериализация в языках ecmascript (QtScript, JavaScript)