JSONNODE未在此范围内声明

时间:2012-08-20 11:55:26

标签: c++ libjson

我刚从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;
}

我错过了一些头文件?

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

json::JSONNode n(JSON_NODE);
json::JSONNode c(JSON_ARRAY);

答案 2 :(得分:0)

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

我遵循了以下主题,在遇到同样的问题后,它对我很有帮助:

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

答案 3 :(得分: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;
}