// json.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <string> #include <iostream> #include <fstream> #include <ctime> // for time #include <cstdlib> // for rand srand using namespace std; #include <windows.h> // for tickcount64 #include "json/json.h" /**@brief low letter*/ static const char* sLetters = "abcdefghijklmnopqrstuvwxyz"; /**@brief low letter length*/ static const int sLen = strlen(sLetters); /** * describe generate random string for test * param{lenth} size of string to generation * return a random string */ string getRandomString(int lenth) { string s(lenth,' '); srand(time(0)); for(int i=0; i<lenth; ++i) { s += sLetters[rand()%sLen]; } return s; } /** * describe save json to local file * param{fn} file name to save * return void */ static void SavetoFile(const char* fn) { int i = 0; int j = 0; Json::Value root; // json root // dd_type,root member keys,which can be got by Value::members function,// you can use Value::isMember to test whether a key is belong to the Value static const char* dd_type[] = { "online","local","favorite",NULL}; srand(time(0)); while (dd_type[j]) { Json::Value items(Json::arrayValue); // json array type int cnt = rand()%20 + 100; for (int k=0; k<cnt; ++k) { Json::Value item; item["id"] = i++; item["url"] = getRandomString(rand()%10 + 5) + ".com"; item["read"] = i%2; items.append(item); } root[dd_type[j++]] = items; } { ofstream out(fn,ofstream::out | ofstream::binary); if (out.is_open()) { out << root; out.close(); } } } int _tmain(int argc,_TCHAR* argv[]) { LONG64 s = GetTickCount64(); SavetoFile("out.json"); cout << "OK,time elapsed: " << GetTickCount64() - s << " ms"; getchar(); return 0; }