diff --git a/docs/source/CsharpUsage.md b/docs/source/CsharpUsage.md index 83f4842fc..abfcbf655 100644 --- a/docs/source/CsharpUsage.md +++ b/docs/source/CsharpUsage.md @@ -180,7 +180,8 @@ To use: An additional feature of the object API is the ability to allow you to serialize & deserialize a JSON text. To use Json Serialization, add `--cs-gen-json-serializer` option to `flatc` and -add `Newtonsoft.Json` nuget package to csproj. +add `Newtonsoft.Json` nuget package to csproj. This requires explicitly setting +the `--gen-object-api` option as well. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cs} // Deserialize MonsterT from json @@ -192,7 +193,7 @@ add `Newtonsoft.Json` nuget package to csproj. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Limitation - * `hash` attribute currentry not supported. + * `hash` attribute currently not supported. * NuGet package Dependency * [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json) diff --git a/scripts/generate_code.py b/scripts/generate_code.py index 7a667d84e..39b82856d 100755 --- a/scripts/generate_code.py +++ b/scripts/generate_code.py @@ -74,7 +74,7 @@ def flatc( cmd += [schema] if isinstance(schema, str) else schema if data: cmd += [data] if isinstance(data, str) else data - subprocess.run(cmd, cwd=cwd) + result = subprocess.run(cmd, cwd=cwd, check=True) # Glob a pattern relative to file path diff --git a/src/flatc.cpp b/src/flatc.cpp index f278dab74..6b9fdc01a 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -184,6 +184,8 @@ std::string FlatCompiler::GetUsageString(const char *program_name) const { " data using schema-less FlexBuffers.\n" " --no-warnings Inhibit all warning messages.\n" " --cs-global-alias Prepend \"global::\" to all user generated csharp classes and structs.\n" + " --cs-gen-json-serializer Allows (de)serialization of JSON text in the Object\n" + " API. (requires --gen-object-api).\n" "FILEs may be schemas (must end in .fbs), binary schemas (must end in .bfbs),\n" "or JSON files (conforming to preceding schema). FILEs after the -- must be\n" "binary flatbuffer format files.\n" @@ -435,6 +437,12 @@ int FlatCompiler::Compile(int argc, const char **argv) { Error("no options: specify at least one generator.", true); } + if (opts.cs_gen_json_serializer && !opts.generate_object_based_api) { + Error( + "--cs-gen-json-serializer requires --gen-object-api to be set as " + "well."); + } + flatbuffers::Parser conform_parser; if (!conform_to_schema.empty()) { std::string contents;