cpp的json的用法舉例
#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;
}
相關文章
- CONSTRAINT的用法舉例AI
- jquery九大選擇器的用法舉例jQuery
- 舉例說明在組合語言中,"[]"的用法組合語言
- 番茄鐘的團隊用法——以會議舉例
- 使用Java JUnit框架裡的@Rule註解的用法舉例Java框架
- 舉例說明Oracle資料庫審計的用法Oracle資料庫
- Python qutip用法(舉例介紹)Python
- 【mysql】SUBSTRING_INDEX 用法舉例MySqlIndex
- 關於對MySQL的SQL_NO_CACHE的理解和用法舉例MySql
- mysql_config_editor用法舉例MySql
- Swift列舉的全用法Swift
- Java 列舉 switch的用法Java
- linux LVM 磁碟管理 基本用法舉例LinuxLVM
- HTTP 請求響應頭部欄位裡 ETAG 的用法舉例HTTP
- MySQL的information_schema資料庫表說明及用法舉例MySqlORM資料庫
- Java enum列舉類詳解 列舉的常見用法Java
- java中的單例模式,舉例說明。Java單例模式
- Java列舉的七種常見用法Java
- json小用法JSON
- C#中類的使用舉例C#
- JS標籤的各種事件的舉例JS事件
- Selenium用法詳解 -- Selenium3 自動化測試 frame多種用法舉例
- PostgreSQL9.x,10,11hash分割槽表用法舉例SQL
- cpp的lambda表示式
- Object-c KVC的使用和舉例Object
- oracle rollup,cube子句的應用舉例;Oracle
- JAVA反射舉例Java反射
- 盒模型舉例模型
- 死鎖-舉例
- JSON.parse()、eval()、JSON.stringify()、jQuery.parseJSON()的用法JSONjQuery
- JS中排序的用法和例項JS排序
- [轉] Input的高階用法11例
- 前端 JavaScript 中 JSON.stringify() 的基本用法前端JavaScriptJSON
- Go語言中JSON標籤的用法與技巧GoJSON
- php和json的應用例項PHPJSON
- jQuery的ajax和json使用例項jQueryJSON
- Travis CI 配置檔案 .travis.yml 的語法介紹和一些用法舉例
- Java 列舉(enum) 詳解7種常見的用法Java