C++ 如何使用taocpp json检查值类型为数组的键
需要使用taocpp json查找json对象中是否存在数组。使用optional查找int和boolean等是很容易的,但是如果值是数组,我就不知道如何执行 我试过:C++ 如何使用taocpp json检查值类型为数组的键,c++,json,C++,Json,需要使用taocpp json查找json对象中是否存在数组。使用optional查找int和boolean等是很容易的,但是如果值是数组,我就不知道如何执行 我试过: v.optional<std::vector<tao::json::value>>("fields"); 但这给了我编译器错误 关于msvc: C:\PROGRA~2\MICROS~1\2017\PROFES~1\VC\Tools\MSVC\1416~1.270\bin\Hostx64\x64\cl.e
v.optional<std::vector<tao::json::value>>("fields");
但这给了我编译器错误
关于msvc:
C:\PROGRA~2\MICROS~1\2017\PROFES~1\VC\Tools\MSVC\1416~1.270\bin\Hostx64\x64\cl.exe/nologo/TP-IC:\devel\cpp\vcpgg\installed\x64 windows\include/DWIN32/D_windows/GR/EHsc/O2/Ob2/DNDEBUG-MD-std:C++++17/showcincludes/Fosrc\cmakfiles\tabgen.dir\file\cmakfiles\cpp.obj/Fdsrc\cmakfiles\tabgen\tabgen\FS-C..\src\cpu-manager
c:\devel\cpp\vcpkg\installed\x64 windows\include\tao\json\basic\u value.hpp1308:错误C2440:“返回”:无法从“void”转换为“std::optional,std::allocator>>”
具有
[
_Ty=tao::json::基本值
]
c:\devel\cpp\vcpkg\installed\x64 windows\include\tao\json\basic\u value.hpp1308:注意:void类型的表达式不能转换为其他类型
..\src\file_manager.cpp24:注意:请参阅正在编译的函数模板实例化'std::optional,std::allocator>>tao::json::basic_value::optional>,char[7]>const K&const'
具有
[
_Ty=tao::json::基本值,
K=char[7]
]
..\src\file_manager.cpp24:注意:请参阅正在编译的函数模板实例化'std::optional,std::allocator>>tao::json::basic_value::optional>,char[7]>const K&const'
具有
[
_Ty=tao::json::基本值,
K=char[7]
]
c:\devel\cpp\vcpkg\installed\x64 windows\include\tao\json\events/virtual\u base.hpp69:注意:请参阅正在编译的类模板实例化“tao::basic\u binary\u view”
C:\Program Files x86\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\include\filesystem2392:注意:请参阅正在编译的类模板实例化“std::chrono::time\u point”的参考
C:\Program Files x86\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\include\type\u traits616:注意:请参阅正在编译的类模板实例化“std::basic\u string\u view>”的参考
C:\Program Files x86\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\include\xstring2124:注意:请参阅正在编译的类模板实例化“std::is_converable>>”的参考
具有
[
_StringViewIsh=常量wchar\t*
]
C:\Program Files x86\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\include\xstring2122:注意:请参阅正在编译的变量模板“const bool conjunction”\u v>>,std::negation>>
C:\Program Files x86\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\include\xstring2281:注意:请参阅别名模板实例化“std::basic\u string,std::allocator>::::_Is_string\u view\u ish”正在编译
具有
[
_StringViewIsh=常量wchar\t*
]
您知道如何检查是否存在值为array类型的键吗?找到了另一种方法,使用object\t:
tao::json::value v = tao::json::parse_file("..\\json.json");
std::map<std::string, tao::json::value, std::less<>> o = v.get_object();
{
auto i = o.find("name");
if(i != std::end(o))
{
std::cout << i->second.get_string();
}
auto i = o.find("NOT_FOUND");
if(i != std::end(o))
{
std::cout << i->second.get_string();
}
else
{
std::cout << "NOT_FOUND";
}
}
return 0;
这是一种有效的查找方法,可以清楚地查找对象是否丢失。为什么不显示错误,它可能包含有用的信息-