Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Read whole file into a buffer
- FILE* fp = fopen("test.json", "r");
- fseek(fp, 0, SEEK_END);
- size_t filesize = (size_t)ftell(fp);
- fseek(fp, 0, SEEK_SET);
- //char* buffer = (char*)malloc(filesize + 1);
- char buffer[1024 * 10];// = (char*)malloc(filesize + 1);
- size_t readLength = fread(buffer, 1, filesize, fp);
- buffer[readLength] = '\0';
- fclose(fp);
- // In situ parsing the buffer into d, buffer will also be modified
- typedef GenericDocument<UTF8<>, MemoryPoolAllocator<>, MemoryPoolAllocator<>> MemDocument;
- MemDocument d;
- d.ParseInsitu(buffer);
- const char* key = "id";
- Value::ConstMemberIterator itr = d.FindMember(key);
- if (!d.IsObject()){
- printf("Not object!");
- return nullptr;
- }
- if (itr != d.MemberEnd())
- std::cout << &itr->value << std::endl;
- else
- printf("NULL pointer!");
- // 3. Stringify the DOM
- StringBuffer buff;
- Writer<StringBuffer> writer(buff);
- d.Accept(writer);
- std::cout << buff.GetString() << std::endl;
- // Query/manipulate the DOM here...
- //free(buffer);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement