本文整理汇总了C++中JSONNode::contains方法的典型用法代码示例。如果您正苦于以下问题:C++ JSONNode::contains方法的具体用法?C++ JSONNode::contains怎么用?C++ JSONNode::contains使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JSONNode
的用法示例。
在下文中一共展示了JSONNode::contains方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: test_profile_view
void test_profile_view(){
HTTPClientSession s(HOST, PORT);
HTTPRequest request(HTTPRequest::HTTP_GET, std::string("/api/v1/profile/").append(created_profile_uuid));
s.sendRequest(request);
HTTPResponse response;
std::istream& rs = s.receiveResponse(response);
std::string data;
StreamCopier::copyToString(rs, data);
LOGDEBUG("response:"<<data);
JSONNode node = getJson(data);
assert_response(node);
assert(node.contains("data"));
assert(node["data"].contains("format"));
assert(node["data"]["format"].contains("id"));
assert(node["data"]["format"]["id"]=="matroska");
assert(node["data"].contains("video"));
assert(node["data"]["video"].contains("id"));
assert(node["data"]["video"]["id"]=="mpeg4");
assert(node["data"].contains("audio"));
}
示例2: test_profile_create
void test_profile_create(){
HTTPClientSession s(HOST, PORT);
HTTPRequest request(HTTPRequest::HTTP_POST, "/api/v1/profile/");
//std::ostringstream os;
JSONNode base(JSON_NODE);
base.push_back(JSONNode("name","test profile"));
base.push_back(JSONNode("description","test description"));
JSONNode format(JSON_NODE);
format.set_name("format");
format.push_back(JSONNode("id","mp4"));
base.push_back(format);
JSONNode video(JSON_NODE);
video.set_name("video");
//video.push_back(JSONNode("id","mpeg4"));
video.push_back(JSONNode("id","libx264"));
video.push_back(JSONNode("qscale","4"));
video.push_back(JSONNode("aubq","8"));
video.push_back(JSONNode("me_range","16"));
video.push_back(JSONNode("qmin","4"));
video.push_back(JSONNode("qmax","51"));
video.push_back(JSONNode("qcomp","0.6"));
video.push_back(JSONNode("qdiff","4"));
base.push_back(video);
JSONNode audio(JSON_NODE);
audio.set_name("audio");
audio.push_back(JSONNode("id","mp2"));
audio.push_back(JSONNode("ar","44100"));
audio.push_back(JSONNode("ac","2"));
base.push_back(audio);
//request.write(os);
std::ostream & os=s.sendRequest(request);
os << base.write_formatted();
HTTPResponse response;
std::istream& rs = s.receiveResponse(response);
std::string data;
StreamCopier::copyToString(rs, data);
LOGDEBUG("response:"<<data);
JSONNode node = getJson(data);
assert_response(node);
assert(node.contains("uuid"));
created_profile_uuid=node["uuid"].as_string();
}
示例3: test_profile_update
void test_profile_update(){
HTTPClientSession s(HOST, PORT);
HTTPRequest request(HTTPRequest::HTTP_PUT, std::string("/api/v1/profile/").append(created_profile_uuid));
JSONNode base(JSON_NODE);
base.push_back(JSONNode("name","test profile"));
base.push_back(JSONNode("description","test description"));
JSONNode format(JSON_NODE);
format.set_name("format");
format.push_back(JSONNode("id","matroska"));
base.push_back(format);
JSONNode video(JSON_NODE);
video.set_name("video");
video.push_back(JSONNode("id","mpeg4"));
base.push_back(video);
JSONNode audio(JSON_NODE);
audio.set_name("audio");
audio.push_back(JSONNode("id","mp2"));
audio.push_back(JSONNode("ar","44100"));
audio.push_back(JSONNode("ac","2"));
base.push_back(audio);
//request.write(os);
std::ostream & os=s.sendRequest(request);
os << base.write_formatted();
HTTPResponse response;
std::istream& rs = s.receiveResponse(response);
std::string data;
StreamCopier::copyToString(rs, data);
LOGDEBUG("response:"<<data);
JSONNode node = getJson(data);
assert_response(node);
assert(node.contains("uuid"));
assert(node["uuid"]==created_profile_uuid);
}
示例4: checkJsonProfile
std::string ProfileEditor::checkJsonProfile(JSONNode&root) {
std::string result;
/*check the root conatins required data*/
if (!root.contains("name")) {
result = "no profile name given!";
} else if (!root.contains("format")) {
result = "no format attribute found!";
} else if (!root.contains("video")) {
result = "no video attribute found!";
} else if (!root.contains("audio")) {
result = "no audio attribute found!";
} else if (!root["format"].contains("id")) {
result = "no id attribute found in attribute \"format\"!";
} else if (!root["video"].contains("id")) {
result = "no id attribute found in attribute \"video\"!";
} else if (!root["audio"].contains("id")) {
result = "no id attribute found in attribute \"audio\"!";
}else{
//Wt::WApplication::instance()->attachThread(true);
analyzerDialog=new Wt::WDialog(this);
analyzerDialog->setWidth(800);
analyzerDialog->setHeight(500);
progressBar=new Wt::WProgressBar();
progressBar->setMinimum(0);
progressBar->setMaximum(250);
fpsText=new Wt::WText("FPS");
psnrText=new Wt::WText("PSNR");
Wt::WVBoxLayout *vbox = new Wt::WVBoxLayout();
analyzerDialog->contents()->setLayout(vbox);
chart=new Wt::Chart::WCartesianChart();
chart->resize(700,350);
//chart->setHidden(true);
vbox->addWidget(progressBar);
vbox->addWidget(fpsText);
vbox->addWidget(psnrText);
vbox->addWidget(chart);
analyzerDialog->show();
//app->enableUpdates();
LOGDEBUG("thread attached");
_verifier=new org::esb::plugin::PresetVerifier();
_verifier->progress=boost::bind(&ProfileEditor::progress, this, _1);
_verifier->completed=boost::bind(&ProfileEditor::completed, this, _1);
Wt::WPushButton *ok = new Wt::WPushButton("Close", analyzerDialog->footer());
ok->setDefault(true);
ok->setEnabled(false);
ok->clicked().connect(this, &ProfileEditor::closeAnalyzer);
_selfApp=Wt::WApplication::instance();
_selfApp->enableUpdates();
a=0;
go(org::esb::plugin::PresetVerifier::verify, _verifier, root, true, true);
//verifier.verify(root);
//analyzerDialog->reject();
//go(ProfileEditor::startAnalyzeThread, this, root, Wt::WApplication::instance());
}
return result;
}
示例5: LOGDEBUG
PresetReaderJson::PresetReaderJson(std::string data) {
LOGDEBUG("Preset Data:" << data);
JSONNode node = libjson::parse(data);
if(node.contains("profile-uuid")){
db::HiveDb db=DatabaseService::getDatabase();//"sqlite3", org::esb::config::Config::get("db.url"));
litesql::DataSource<db::Preset>s = litesql::select<db::Preset > (db, db::Preset::Uuid == node["profile-uuid"].as_string());
if(s.count()==1){
data=s.one().data;
}else{
throw org::esb::lang::Exception(__FILE__,__LINE__,"profile defined by profile-uuid not found");
}
node = libjson::parse(data);
}
if (node.contains("format") && node["format"].contains("id")) {
_preset["id"] = node["format"]["id"].as_string();
if(node.contains("name")){
_preset["name"]=node["name"].as_string();
}
}else{
throw org::esb::lang::Exception(__FILE__,__LINE__,"no format attribute found");
}
std::string type;
type = "video";
if (node.contains(type)) {
int c = node[type].size();
for (int a = 0; a < c; a++) {
JSONNode n = node[type].at(a);
std::string name = n.name();
std::string value = n.as_string();
/*filter out some unwanted attributes*/
if (name == "frame_size"){
int width;
int height;
int result=sscanf(value.c_str(),"%dx%d", &width, &height);
LOGDEBUG("width="<<width);
LOGDEBUG("width="<<height);
_codecs[type]["width"]=StringUtil::toString(width);
_codecs[type]["height"]=StringUtil::toString(height);
continue;
}
//LOGDEBUG("json type : "<<n.type());
if (name == "id") {
name = "codec_id";
}
if (name == "b" || name == "maxrate" || name == "bt" || name == "bufsize" || name == "minrate")
value += "000";
LOGDEBUG("Name=" << name << " val=" << value);
_codecs[type][name] = value; //.insert(std::pair<std::string, std::string>(name,value));
}
}else{
throw org::esb::lang::Exception(__FILE__,__LINE__,"no video attribute found");
}
type = "audio";
if (node.contains(type)) {
int c = node[type].size();
for (int a = 0; a < c; a++) {
JSONNode n = node[type].at(a);
LOGDEBUG("Name=" << n.name() << " val=" << n.as_string());
if (n.name() == "id") {
n.set_name("codec_id");
//AVCodec * codec=avcodec_find_encoder_by_name(n.as_string().c_str());
//n=JSONNode("codec_id",codec->id);
}
_codecs[type][n.name()] = n.as_string(); //.insert(std::pair<std::string, std::string>(n.name(),n.as_string()));
}
}else{
throw org::esb::lang::Exception(__FILE__,__LINE__,"no audio attribute found");
}
}