我在web上使用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 "<stdin>", line 1, in <module>
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 );
};
目前没有回答
相关问题 更多 >
编程相关推荐