这是一个基本的C++程序,使用了jsoncpp库来解析和转换json字符串为结构体对象:

#include <iostream>
#include <json/json.h>

// 定义一个结构体用来存储json数据
struct Person {
    std::string name;
    int age;
    std::string address;
};

// 将json字符串转换为结构体对象
Person parseJson(const std::string& jsonString) {
    Person person;
    
    // 解析json字符串
    Json::CharReaderBuilder builder;
    Json::Value root;
    std::string errors;
    std::istringstream jsonStream(jsonString);
    Json::parseFromStream(builder, jsonStream, &root, &errors);
    
    // 从json对象中提取数据并赋值给结构体对象
    person.name = root['name'].asString();
    person.age = root['age'].asInt();
    person.address = root['address'].asString();
    
    return person;
}

int main() {
    std::string jsonString = R"(
        {
            "name": "John",
            "age": 30,
            "address": "123 Street, City"
        }
    )";
    
    Person person = parseJson(jsonString);
    
    // 打印结构体对象的值
    std::cout << "Name: " << person.name << std::endl;
    std::cout << "Age: " << person.age << std::endl;
    std::cout << "Address: " << person.address << std::endl;
    
    return 0;
}

在上述代码中,首先定义了一个Person结构体来存储json数据。然后,使用parseJson函数将json字符串转换为结构体对象。parseJson函数使用了jsoncpp库来解析json字符串,并从json对象中提取数据并赋值给结构体对象。最后,在main函数中调用parseJson函数并打印结构体对象的值。

注意:在编译前,需要安装jsoncpp库,并将其链接到编译器。


原文地址: https://www.cveoy.top/t/topic/pDWT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录