aboutsummaryrefslogtreecommitdiffstats
path: root/libtests/json_parse.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-01-18 00:40:38 +0100
committerJay Berkenbilt <ejb@ql.org>2022-01-30 19:11:03 +0100
commite8e8f6f43c760523520dfe7a5c76d88c959599f6 (patch)
treea000bcb5cbbde3e2833a57a28e761449b62165b2 /libtests/json_parse.cc
parentb9af421ef788b94fcbf18ecf702cec3ba9a018b7 (diff)
downloadqpdf-e8e8f6f43c760523520dfe7a5c76d88c959599f6.tar.zst
Add JSON::parse
Diffstat (limited to 'libtests/json_parse.cc')
-rw-r--r--libtests/json_parse.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/libtests/json_parse.cc b/libtests/json_parse.cc
new file mode 100644
index 00000000..f0491723
--- /dev/null
+++ b/libtests/json_parse.cc
@@ -0,0 +1,27 @@
+#include <qpdf/JSON.hh>
+#include <qpdf/QUtil.hh>
+#include <iostream>
+
+int main(int argc, char* argv[])
+{
+ if (argc != 2)
+ {
+ std::cerr << "Usage: json_parse file" << std::endl;
+ return 2;
+ }
+ char const* filename = argv[1];
+ try
+ {
+ PointerHolder<char> buf;
+ size_t size;
+ QUtil::read_file_into_memory(filename, buf, size);
+ std::string s(buf.getPointer(), size);
+ std::cout << JSON::parse(s).unparse() << std::endl;
+ }
+ catch (std::exception& e)
+ {
+ std::cerr << "exception: " << filename<< ": " << e.what() << std::endl;
+ return 2;
+ }
+ return 0;
+}