Имя поля в C++
Ключ в JSON часто приходит в snake_case, а поле структуры пишут в стиле C++.
Автоматического переименования нет: при записи явно кладут значение члена под нужной строкой ключа, при чтении берут тот же ключ, что ждет внешний протокол, без макросов и генераторов:
#include <iostream>
#include <nlohmann/json.hpp>
#include <string>
struct Person {
std::string name;
};
int main() {
Person person{"Ann"};
nlohmann::json j;
j["user_name"] = person.name;
std::cout << j.dump() << "\n";
std::string raw = R"({"user_name":"Bob"})";
nlohmann::json incoming = nlohmann::json::parse(raw);
Person guest;
guest.name = incoming.at("user_name").get<std::string>();
std::cout << guest.name << "\n";
return 0;
}
Объявите структуру SensorRow с
полями device_id и temp_c
типа double. Разберите
{"device_id":"s1","temp_c":21.5},
заполните структуру и выведите оба поля.
Создайте SensorRow с идентификатором
"s9" и температурой 18.0.
Запишите ее в nlohmann::json с
ключами "device_id" и
"temp_c" и выведите строку
dump.