{"store":{"book":[{"category":"reference","author":"Nigel Rees","title":"Sayings of the Century","price":8.95},{"category":"fiction","author":"Evelyn Waugh","title":"Sword of Honour","price":12.99},{"category":"fiction","author":"Herman Melville","title":"Moby Dick","isbn":"0-553-21311-3","price":8.99},{"category":"fiction","author":"J. R. R. Tolkien","title":"The Lord of the Rings","isbn":"0-395-19395-8","price":22.99}],"bicycle":{"color":"red","price":19.95}},"expensive":10}
#include"rapidjson/document.h"// rapidjson's DOM-style API#include"rapidjson/prettywriter.h"// for stringify JSON#include<cstdio>#include"rapidjson/pointer.h"#include"rapidjson/filereadstream.h"#include<iostream>usingnamespace rapidjson;usingnamespace std;intmain(int,char*[]){
FILE* fp =fopen("/media/hocker/f595bdef-c22c-4f28-b4d2-e134ae2603ed/workspace/code/test/c/json/data/b.json","rb");char readBuffer[256];
FileReadStream bis(fp, readBuffer,sizeof(readBuffer));
AutoUTFInputStream<unsigned, FileReadStream>eis(bis);// wraps bis into eis
Document d;
d.ParseStream(eis);
Value * e =Pointer("/store/book").Get(d);for(int i =0; i < e->Size();++i){
Value * et =Pointer("/author").Get((*e)[i]);if(et && et->IsString())
cout << et->GetString()<< endl;}return0;}