1

我刚刚从 sourceforge.net 安装了 libjson。我尝试执行一个简单的程序但我得到了这个错误

‘JSONNode’ was not declared in this scope

这是代码

#include<iostream>

#include <libjson.h>

int main()
{
    JSONNode n(JSON_NODE);
    JSONNode c(JSON_ARRAY);
    c.push_back(JSONNode("", 16));
    c.push_back(JSONNode("", 43));
    c.push_back(JSONNode("", 69));

    n.push_back(c);

    std::string jc = n.write_formatted();
    std::cout<<jc<<std::endl;

    return 0;
}

MI缺少一些头文件?

4

4 回答 4

2

您需要禁用#define JSON_LIBRARYin JSONOptions.h,否则 libjson 将不包含 C++ 标头。

于 2012-11-20T10:50:49.517 回答
1

我看到 libjson 的东西是在json命名空间中定义的。请尝试json::在前面添加JSONNode解决问题?像这样:

json::JSONNode n(JSON_NODE);
json::JSONNode c(JSON_ARRAY);
于 2012-08-20T12:04:18.990 回答
0

您必须确保首先构建 libJson 库。

我遵循了以下线程,在遇到与您相同的问题后,它对我很有用:

运行 Make 文件: http://stackoverflow.com/a/11865407/1399434e

于 2013-06-21T18:28:26.683 回答
0

禁用 JSONOptions.h 中的 JSON_LIBRARY

//#define JSON_LIBRARY

然后再次编译如下

#include "libjson.h"
using namespace libjson;

int main(int argc, char* argv[])
{

    JSONNode* pNode = NULL;
    return 0;
}
于 2013-11-21T15:16:31.887 回答