cpp的json的用法举例
2016-06-13 20:08
337 查看
#include "json/json.h"
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
const string movie =
"电影";
const string cartoon =
"动漫";
const string tvplay =
"电视";
const string variety =
"综艺";
void getValue(string key, string property, Json::Value value){
Json::Value arrayObj = value[key.c_str()];
if(arrayObj.size() !=
0){
for (unsigned
int i = 0; i < arrayObj.size(); i++)
{
string tmp = arrayObj[i][property.c_str()].asString();
std::cout << tmp << "\t";
}
std::cout << std::endl;
}
}
void printHelp(){
cout << "a.out movie|cartoon|tvplay|variety" << endl;
}
int main(int argc,
char* argv[])
{
if(argc !=
2){
cerr << "param count is "<< argc << endl;
printHelp();
return -1;
}
string query = argv[1];
if(query.compare("movie") !=
0 && query.compare("cartoon") !=
0 &&
query.compare("tvplay") !=
0 && query.compare("variety") !=
0
){
cerr << "second param is "<< argv[1] << endl;
printHelp();
return -1;
}
if(query.compare("movie") ==
0) query = "电影";
if(query.compare("cartoon") ==
0) query = "动漫";
if(query.compare("tvplay") ==
0) query = "电视";
if(query.compare("variety") ==
0) query = "综艺";
Json::Reader reader;
Json::Value value;
string file_name = "total.dat";
ifstream infile(file_name.c_str(),ios::in);
string textline;
bool needInfo =
false;
int count_line =
0;
int count_query =
0;
while(getline(infile, textline,
'\n')){
needInfo = false;
count_line++;
if(reader.parse(textline, value)){
Json::Value arrayObj = value["domain"];
for (unsigned
int i = 0; i < arrayObj.size(); i++){
string domain = arrayObj[i]["@value"].asString();
if (domain.compare(query) ==
0) {
needInfo = true;
break;
}
}
if(needInfo ==
true){
getValue("@uri",
"@value", value);
}
}
}
return
0;
}
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
const string movie =
"电影";
const string cartoon =
"动漫";
const string tvplay =
"电视";
const string variety =
"综艺";
void getValue(string key, string property, Json::Value value){
Json::Value arrayObj = value[key.c_str()];
if(arrayObj.size() !=
0){
for (unsigned
int i = 0; i < arrayObj.size(); i++)
{
string tmp = arrayObj[i][property.c_str()].asString();
std::cout << tmp << "\t";
}
std::cout << std::endl;
}
}
void printHelp(){
cout << "a.out movie|cartoon|tvplay|variety" << endl;
}
int main(int argc,
char* argv[])
{
if(argc !=
2){
cerr << "param count is "<< argc << endl;
printHelp();
return -1;
}
string query = argv[1];
if(query.compare("movie") !=
0 && query.compare("cartoon") !=
0 &&
query.compare("tvplay") !=
0 && query.compare("variety") !=
0
){
cerr << "second param is "<< argv[1] << endl;
printHelp();
return -1;
}
if(query.compare("movie") ==
0) query = "电影";
if(query.compare("cartoon") ==
0) query = "动漫";
if(query.compare("tvplay") ==
0) query = "电视";
if(query.compare("variety") ==
0) query = "综艺";
Json::Reader reader;
Json::Value value;
string file_name = "total.dat";
ifstream infile(file_name.c_str(),ios::in);
string textline;
bool needInfo =
false;
int count_line =
0;
int count_query =
0;
while(getline(infile, textline,
'\n')){
needInfo = false;
count_line++;
if(reader.parse(textline, value)){
Json::Value arrayObj = value["domain"];
for (unsigned
int i = 0; i < arrayObj.size(); i++){
string domain = arrayObj[i]["@value"].asString();
if (domain.compare(query) ==
0) {
needInfo = true;
break;
}
}
if(needInfo ==
true){
getValue("@uri",
"@value", value);
}
}
}
return
0;
}
相关文章推荐
- 调用iframe中的js函数
- js操作数组方法大全
- 跟我学《JavaScript高程3》第三讲,课程笔记
- js ==与===区别(两个等号与三个等号)
- js闭包
- 全面理解Javascript闭包和闭包的几种写法及用途
- JSTL日期比较
- knockoutjs扩展与使用
- Chromimu与JS交互的测试
- kmdjs和循环依赖
- 【JavaScript】难点1-继承
- JavaScript的继承--寄生组合式继承
- js事件流
- JS参数理解(基本类型和引用类型)
- javascript将json转字符串
- chrome 插件的成果
- js中将字符串转换成json的三种方式
- js 小功能函数
- moment.js的学习
- 浅析javascript几种继承方式