我写了一段代码,提示用户输入JSON文件中某个元素的访问路径,然后检索该元素的值。但我只能访问根元素。用户应该写什么,例如get object. array [2]. field?我使用的是单include nlohmann/json库。
我的代码:
using json = nlohmann::json;
int main() {
std::ifstream file("test3.json");
json data;
file >> data;
std::string access_path;
std::cout << "Enter the access path to the nested element (e.g. 'object.array[2].field'): ";
std::getline(std::cin, access_path);
try {
json nested_element = data.at(access_path);
std::cout << "Value of element: " << nested_element.dump() << std::endl;
} catch (json::out_of_range& e) {
std::cout << "Error: Invalid access path." << std::endl;
}
return 0;
}
1条答案
按热度按时间0x6upsns1#
首先,您需要一个
json_pointer
。然后,在
object
中访问array[2]
中的field
将由用户输入为test3.json
文件的示例版本:输出: