我正在网上使用JSON示例,如下所示.
{ "menu": "File", "commands": [ { "title": "New", "action":"CreateDoc" }, { "title": "Open", "action": "OpenDoc" }, { "title": "Close", "action": "CloseDoc" } ] }
我尝试在两个不同的解析器中加载它,一个用C++和Python.
这是Python的追溯.
Traceback (most recent call last): File "", line 1, in File "/usr/lib/python2.6/json/__init__.py", line 267, in load parse_constant=parse_constant, **kw) File "/usr/lib/python2.6/json/__init__.py", line 307, in loads return _default_decoder.decode(s) File "/usr/lib/python2.6/json/decoder.py", line 319, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python2.6/json/decoder.py", line 338, in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded
以下是jsoncpp报道的内容.
* Line 1, Column 1 Syntax error: value, object or array expected.
我有什么问题吗?
编辑:
好的,这是一些代码.由于某些原因,现在Python的工作.除了去商店,我什么都没做.这必须是一个Python功能 - 转到商店,随机错误消失.那些Python开发人员是天才.
但到了这一点.这是C++代码.
bool CFG::CFG_Init( const char* path ) { bool r = reader.parse( path, root ); if( r ) { return true; } else { std::cout << reader.getFormatedErrorMessages() << std::endl; return false; } }
我试过这个'path'也是一个std :: string - 同样的事情.我正在调用这样的方法:
if( !CFG_Init("test.json") ) { error("Couldn't load configuration."); }
这是课堂.
class CFG: virtual Evaluator { Json::Reader reader; public: Json::Value root; bool CFG_Init( const char* path); Json::Value CFG_Fetch_Raw(Json::Value section, std::string key, Json::Value defval); Json::Value CFG_Fetch(Json::Value section, std::string key, Json::Value defval ); };
Scott.. 11
好的,看完jsoncpp的代码后,我意识到我的错误.它希望文档为字符串,而不是文件名.
好的,看完jsoncpp的代码后,我意识到我的错误.它希望文档为字符串,而不是文件名.