Working with JSON

How to:

In C++, there’s no native support for JSON, but third-party libraries like nlohmann/json make it straightforward. Here’s how to use it for basic tasks:

First, ensure you have the library installed. If you’re using a package manager like vcpkg or Conan, you can easily add nlohmann/json to your project.

Parsing JSON from a string

#include <iostream>
#include <nlohmann/json.hpp>

int main() {
    // JSON data as a string
    std::string jsonData = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";

    // Parse JSON string
    auto jsonObject = nlohmann::json::parse(jsonData);

    // Accessing data
    std::cout << "Name: " << jsonObject["name"] << "\n"
              << "Age: " << jsonObject["age"] << "\n"
              << "City: " << jsonObject["city"] << std::endl;

    return 0;

Sample output:

Name: John
Age: 30
City: New York

Generating JSON

Creating JSON data is just as straightforward; you simply assign values to a nlohmann::json object.

#include <nlohmann/json.hpp>
#include <iostream>

int main() {
    // Creating a JSON object
    nlohmann::json jsonObject;
    jsonObject["name"] = "Jane";
    jsonObject["age"] = 25;
    jsonObject["city"] = "Los Angeles";

    // Convert JSON object to string and print
    std::string jsonString = jsonObject.dump(4); // Argument 4 for pretty-printing
    std::cout << jsonString << std::endl;

    return 0;

Sample output:

    "name": "Jane",
    "age": 25,
    "city": "Los Angeles"

These examples demonstrate the core functionality for working with JSON in C++ using the nlohmann/json library. With these basics, you can parse and generate JSON for various applications, from configuration files to data interchange in networked applications.