mirror of
https://github.com/GerbilSoft/rom-properties.git
synced 2025-06-20 12:35:33 -04:00

The JSON output code will be rewritten to use rapidjson, which will allow us to add more stuff without having to worry if the resulting text has the correct formatting. This adds around 20 KB to the compiled binary.
43 lines
1.8 KiB
C++
Vendored
43 lines
1.8 KiB
C++
Vendored
#include "rapidjson/reader.h"
|
|
#include <iostream>
|
|
|
|
using namespace rapidjson;
|
|
using namespace std;
|
|
|
|
struct MyHandler {
|
|
bool Null() { cout << "Null()" << endl; return true; }
|
|
bool Bool(bool b) { cout << "Bool(" << boolalpha << b << ")" << endl; return true; }
|
|
bool Int(int i) { cout << "Int(" << i << ")" << endl; return true; }
|
|
bool Uint(unsigned u) { cout << "Uint(" << u << ")" << endl; return true; }
|
|
bool Int64(int64_t i) { cout << "Int64(" << i << ")" << endl; return true; }
|
|
bool Uint64(uint64_t u) { cout << "Uint64(" << u << ")" << endl; return true; }
|
|
bool Double(double d) { cout << "Double(" << d << ")" << endl; return true; }
|
|
bool RawNumber(const char* str, SizeType length, bool copy) {
|
|
cout << "Number(" << str << ", " << length << ", " << boolalpha << copy << ")" << endl;
|
|
return true;
|
|
}
|
|
bool String(const char* str, SizeType length, bool copy) {
|
|
cout << "String(" << str << ", " << length << ", " << boolalpha << copy << ")" << endl;
|
|
return true;
|
|
}
|
|
bool StartObject() { cout << "StartObject()" << endl; return true; }
|
|
bool Key(const char* str, SizeType length, bool copy) {
|
|
cout << "Key(" << str << ", " << length << ", " << boolalpha << copy << ")" << endl;
|
|
return true;
|
|
}
|
|
bool EndObject(SizeType memberCount) { cout << "EndObject(" << memberCount << ")" << endl; return true; }
|
|
bool StartArray() { cout << "StartArray()" << endl; return true; }
|
|
bool EndArray(SizeType elementCount) { cout << "EndArray(" << elementCount << ")" << endl; return true; }
|
|
};
|
|
|
|
int main() {
|
|
const char json[] = " { \"hello\" : \"world\", \"t\" : true , \"f\" : false, \"n\": null, \"i\":123, \"pi\": 3.1416, \"a\":[1, 2, 3, 4] } ";
|
|
|
|
MyHandler handler;
|
|
Reader reader;
|
|
StringStream ss(json);
|
|
reader.Parse(ss, handler);
|
|
|
|
return 0;
|
|
}
|