Карл (https://github.com/shadow-yuan/karl)
Простая в использовании библиотека JSON на C++.
Существует несколько способов включить библиотеку Карл в свой проект.
Для сборки библиотеки Карл рекомендуется использовать CMake, для которого требуется версия 3.8 или выше. Необходимо поместить скомпилированный файл CMake в каталог, отличный от исходного файла, поэтому создайте каталог build
и запустите CMake внутри него.
mkdir build
cd build
cmake ..
Если вы работаете на платформе Unix, вы можете выполнить компиляцию напрямую с помощью команды make
:
make
Если вы используете Windows, вам нужно будет открыть файл решения karl.sln
в Visual Studio и скомпилировать Карл. Рекомендуется использовать Visual Studio 2015 или Visual Studio 2017.
Если у вас установлены gcc, gcc-c++
, вы можете использовать Makefile
для компиляции Карла:
Запустите эту команду в каталоге с исходным кодом, и она автоматически скомпилирует статическую библиотеку и пример программы.
make all
Просто скопируйте файлы src/cJSON.c/h, src/cbor.cc/h, src/karl.cc/h
и каталог include
в свой проект и начните его использовать.
Независимо от того, используете ли вы исходный код Карла напрямую или статическую библиотеку, необходимо скопировать каталог include
в фиксированный каталог (каталог проекта, системный каталог или другое место), а затем указать каталог заголовочных файлов в Visual Studio или Makefile. Вы можете включить Карл следующим образом:
#include <karl/json.hxx>
using Json = karl::json;
Если вы находитесь на платформе Windows, добавьте в свойствах проекта, вы также можете использовать следующий код для связывания указанной библиотеки:
#pragma comment(lib, "karl.lib")
Если вы на платформе Unix. Вам нужно добавить соответствующий код в Makefile
, указать местоположение библиотеки с -L
и добавить -lkarl
.
json
. Это может быть число, строка или массив или объект.Json& j = js["xxx"]; // ошибка.
Json j = js["xxx"]; // верно, и модификация j повлияет на js.
json.copy
.Json j = js.copy();
std::exception
) генерируется, когда тип полученных данных неверен или запрошенные данные не существуют. Используйте try catch
, чтобы перехватить исключения и обеспечить нормальный ход процесса.Ниже приведён пример общего использования:
char obj[] = "{\"one\":true, \"number\":[1, 2, 3, 4]}";
Json js = Json::parse(obj);
std::string s = "[{\"one\":true,\"two\":2,\"three\":\"hello world\"}]";
Json j = Json::parse(s);
std::string s = "[{\"one\":true,\"two\":2,\"three\":\"hello world\"}]";
Json j = Json::parse(s);
std::string str = j.dump();
Json j;
j[1] = 2;
j[2] = "ss";
j[0] = 1;
``` 4. Создание объекта JSON:
```c
Json j;
j["one"] = false;
j["two"] = 2;
j["three"] = "hello world";
Json j;
j[1] = 2;
j[0] = 1;
Json jj;
jj.push_back(j);
Json j;
j["one"] = true;
j["two"] = 2.0f;
j["three"] = "hello world";
bool one = j["one"].get<bool>();
int two = j["two"].get<int>();
Json j = Json::parse("[{\"one\":true,\"two\":2,\"three\":\"hello world\"}]");
bool one = j[0]["one"].get<bool>();
int two = j[0]["two"].get<int>();
Json j = Json::parse("[{\"one\":true,\"two\":2,\"three\":\"hello world\"}]");
for (auto item : j) {
std::cout << item.dump() << std::endl;
}
Json j = { { "one", nullptr },{ "two", true },{ "three", 10086 },{ "str", "World" } };
std::vector<int> vec{ 1,2,3,4,5 };
Json j = vec;
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )