MCPcopy Create free account
hub / github.com/danielaparker/jsoncons / with_cursor_level_access

Function with_cursor_level_access

examples/src/readme_examples.cpp:104–168  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

102}
103
104void with_cursor_level_access()
105{
106 // Some JSON input data
107 std::string data = R"(
108 {
109 "application": "hiking",
110 "reputons": [
111 {
112 "rater": "HikingAsylum",
113 "assertion": "advanced",
114 "rated": "Marilyn C",
115 "rating": 0.90,
116 "generated": 1514862245
117 }
118 ]
119 }
120 )";
121
122 json_string_cursor cursor(data);
123 for (; !cursor.done(); cursor.next())
124 {
125 const auto& event = cursor.current();
126 switch (event.event_type())
127 {
128 case staj_event_type::begin_array:
129 std::cout << event.event_type() << " " << "\n";
130 break;
131 case staj_event_type::end_array:
132 std::cout << event.event_type() << " " << "\n";
133 break;
134 case staj_event_type::begin_object:
135 std::cout << event.event_type() << " " << "\n";
136 break;
137 case staj_event_type::end_object:
138 std::cout << event.event_type() << " " << "\n";
139 break;
140 case staj_event_type::key:
141 // Or std::string_view, if supported
142 std::cout << event.event_type() << ": " << event.get<jsoncons::string_view>() << "\n";
143 break;
144 case staj_event_type::string_value:
145 // Or std::string_view, if supported
146 std::cout << event.event_type() << ": " << event.get<jsoncons::string_view>() << "\n";
147 break;
148 case staj_event_type::null_value:
149 std::cout << event.event_type() << "\n";
150 break;
151 case staj_event_type::bool_value:
152 std::cout << event.event_type() << ": " << std::boolalpha << event.get<bool>() << "\n";
153 break;
154 case staj_event_type::int64_value:
155 std::cout << event.event_type() << ": " << event.get<int64_t>() << "\n";
156 break;
157 case staj_event_type::uint64_value:
158 std::cout << event.event_type() << ": " << event.get<uint64_t>() << "\n";
159 break;
160 case staj_event_type::double_value:
161 std::cout << event.event_type() << ": " << event.get<double>() << "\n";

Callers 1

mainFunction · 0.85

Calls 4

currentMethod · 0.80
event_typeMethod · 0.80
doneMethod · 0.45
nextMethod · 0.45

Tested by

no test coverage detected