Russian Qt Forum

Qt => Кладовая готовых решений => Тема начата: asvil от Март 06, 2011, 00:23



Название: Qt application settings in JSON
Отправлено: asvil от Март 06, 2011, 00:23
Цель проекта:
Обеспечить хранение настроек приложения в JSON формате.

Qt JSON parser and serializer (qlalr based)
Girish Ramakrishnan
http://git.forwardbias.in/?p=qjsonparser.git (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)


Название: Re: Qt application settings in JSON
Отправлено: ufna от Март 09, 2011, 11:39
Отлично!


Название: Re: Qt application settings in JSON
Отправлено: Robotex от Март 18, 2013, 17:28
А как у него с быстродействием?


Название: Re: Qt application settings in JSON
Отправлено: ритт от Июль 20, 2013, 05:41
честно говоря, ожидал увидеть json бэкэнд к QSettings, а не наследника. почему был выбран именно такой подход?