File tree Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change
1
+ #include " rapidjson/document.h"
2
+ #include " rapidjson/filereadstream.h"
3
+ #include " rapidjson/pointer.h"
4
+ #include " rapidjson/stringbuffer.h"
5
+ #include < iostream>
6
+
7
+ using namespace rapidjson ;
8
+
9
+ void traverse (const Value& v, const Pointer& p) {
10
+ StringBuffer sb;
11
+ p.Stringify (sb);
12
+ std::cout << sb.GetString () << std::endl;
13
+
14
+ switch (v.GetType ()) {
15
+ case kArrayType :
16
+ for (SizeType i = 0 ; i != v.Size (); ++i)
17
+ traverse (v[i], p.Append (i));
18
+ break ;
19
+ case kObjectType :
20
+ for (Value::ConstMemberIterator m = v.MemberBegin (); m != v.MemberEnd (); ++m)
21
+ traverse (m->value , p.Append (m->name .GetString (), m->name .GetStringLength ()));
22
+ break ;
23
+ default :
24
+ break ;
25
+ }
26
+ }
27
+
28
+ int main (int , char *[]) {
29
+ char readBuffer[65536 ];
30
+ FileReadStream is (stdin, readBuffer, sizeof (readBuffer));
31
+
32
+ Document d;
33
+ d.ParseStream (is);
34
+
35
+ Pointer root;
36
+ traverse (d, root);
37
+
38
+ return 0 ;
39
+ }
You can’t perform that action at this time.
0 commit comments