3

我正在尝试将 JsonCpp 与此示例代码一起使用

string json_example = "{\"array\":[\"item1\", \"item2\"], \"not an array\":\"asdf\"}";


    // Let's parse it
    Json::Value root;
    Json::Reader reader;


    //Parsing of something. In example do parsing of json_example string.
    bool parsedSuccess = reader.parse(json_example, root, false);

    if (!parsedSuccess) {
        // report to the user the failure and their locations in the document.
        cout  << "Failed to parse JSON" << endl << reader.getFormatedErrorMessages() << endl;
        return 1;
    }

    // Let's extract the array that is contained inside the root object
    const Json::Value array = root["array"];

    // And print its values
    for (int index = 0; index < array.size(); ++index) {   // Iterates over the sequence elements.
        cout << "Element " << index << " in array: " << array[index].asString() << endl;
    }

    // Lets extract the not array element contained in the root object and print its value
    cout << "Not an array: " << root["not an array"] << endl;

    // If we want to print JSON is as easy as doing:
    cout << "Json Example pretty print: " << endl << root.toStyledString() << endl;

    return 0;

但我在这个“..array[index].asString...”上收到了这个错误

Undefined reference to `Json::Value::operator[](int) const'

谁能帮帮我?!tnx 这么多

4

2 回答 2

1

Tnx 为您解答...所以解决方案正在改变这一点

 for (int index = 0; index < array.size(); ++index) {   // Iterates over the sequence elements.
    cout << "Element " << index << " in array: " << array[index].asString() << endl;
}

 for (unsigned int index = 0; index < array.size(); ++index) {   // Iterates over the sequence elements.
    cout << "Element " << index << " in array: " << array[index].asString() << endl;
}

再见

于 2012-09-15T14:42:40.490 回答
0

我认为您没有包含 jsoncpp.cpp 文件,该文件描述了您的 json.h 库文件。您必须使用带有命令的 Pythot 生成它python amalgamate.py,然后将其包含到您的项目中

于 2015-10-10T13:32:41.307 回答