前端之家收集整理的这篇文章主要介绍了
jsoncpp 使用,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
// 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;
}