From 049f3f7907e9fc8eb1ecd7c3775139de65552585 Mon Sep 17 00:00:00 2001 From: Wouter van Oortmerssen Date: Fri, 8 Jan 2016 15:18:51 -0800 Subject: [PATCH] Added support for parsing JSON null value. These cause the field in question to be skipped. Bug: 16550393 Change-Id: Id05104e89818ee773b8a91fdcc86e18061b9a82f Tested: on Linux. --- docs/html/md__schemas.html | 1 + docs/source/Schemas.md | 3 +++ src/idl_parser.cpp | 39 +++++++++++++++++++++++-------------- tests/monsterdata_test.json | 3 ++- 4 files changed, 30 insertions(+), 16 deletions(-) diff --git a/docs/html/md__schemas.html b/docs/html/md__schemas.html index fe7f56357..de7969cb4 100644 --- a/docs/html/md__schemas.html +++ b/docs/html/md__schemas.html @@ -166,6 +166,7 @@ root_type Monster;
  • It accepts field names with and without quotes, like many JSON parsers already do. It outputs them without quotes as well, though can be made to output them using the strict_json flag.
  • If a field has an enum type, the parser will recognize symbolic enum values (with or without quotes) instead of numbers, e.g. field: EnumVal. If a field is of integral type, you can still use symbolic names, but values need to be prefixed with their type and need to be quoted, e.g. field: "Enum.EnumVal". For enums representing flags, you may place multiple inside a string separated by spaces to OR them, e.g. field: "EnumVal1 EnumVal2" or field: "Enum.EnumVal1 Enum.EnumVal2".
  • Similarly, for unions, these need to specified with two fields much like you do when serializing from code. E.g. for a field foo, you must add a field foo_type: FooOne right before the foo field, where FooOne would be the table out of the union you want to use.
  • +
  • A field that has the value null (e.g. field: null) is intended to have the default value for that field (thus has the same effect as if that field wasn't specified at all).
  • When parsing JSON, it recognizes the following escape codes in strings: