我正在我的C ++项目中尝试使用nlohmann json。从github下载后,我提取了压缩文件。我将提取的文件夹重命名为nlohmann_json
,然后将其复制到项目中。
github文档说:
json.hpp是single_include / nlohmann中单个必需的文件,或在此处发布。您需要添加
#include <nlohmann/json.hpp>
// for convenience
using json = nlohmann::json;
所以在我的.cpp
文件中,我有以下几行:
#include "nlohmann_json/include/nlohmann/json.hpp"
using json = nlohmann::json;
但是Visual Studio 2015 IDE会显示以下消息作为工具提示:
命名空间nlohmann没有成员json
仅输入nlohmann::
后,我会自动得到json_pointer
的建议,而没有json
的提示。
实际上出了什么问题?
答案 0 :(得分:1)
您实际上暗示了您的问题。
json.hpp is the single required file in single_include/nlohmann or released here. You need to add
如果您转到从github签出的原始树,请执行以下操作:
$ find . -name json.hpp
./include/nlohmann/json.hpp
./single_include/nlohmann/json.hpp
您可能会看到您的问题。您将包括第一个找到的文件。您确实需要第二个-或-您需要设置更好的搜索路径。
这就是我要做的。我会将./single_include/nlohmann/json.hpp复制到项目中。我不会包括整个树,仅包括那个文件。并包含它。
我认为这对您会更好。
答案 1 :(得分:0)
您可以使用单头方法,在其中可以直接包含单个json.hpp(在single_include内,只需将nlohmann / json.hpp放在项目的根目录下)。或者,如果要包含一个具有多个文件的文件,则需要在VS项目设置中设置其他包含头文件。
MyProj
nlohmann\....
main.cpp
然后在VS项目设置中将项目的路径添加到其他包含目录。