Home | History | Annotate | Download | only in samples
      1 // Copyright 2018 Google Inc. All rights reserved.
      2 //
      3 // Licensed under the Apache License, Version 2.0 (the "License");
      4 // you may not use this file except in compliance with the License.
      5 // You may obtain a copy of the License at
      6 //
      7 //     http://www.apache.org/licenses/LICENSE-2.0
      8 //
      9 // Unless required by applicable law or agreed to in writing, software
     10 // distributed under the License is distributed on an "AS IS" BASIS,
     11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 // See the License for the specific language governing permissions and
     13 // limitations under the License.
     14 
     15 include from "../lobster/"
     16 include "monster_generated.lobster"
     17 
     18 // Example how to interop with JSON.
     19 
     20 // Test loading some JSON, converting it to a binary FlatBuffer and back again.
     21 
     22 // First read the schema and JSON data.
     23 schema := read_file("monster.fbs", true)
     24 json := read_file("monsterdata.json", true)
     25 assert schema and json
     26 
     27 // Parse JSON  to binary:
     28 fb, err1 := flatbuffers_json_to_binary(schema, json, [])
     29 assert not err1
     30 
     31 // Access one field in it, just to check:
     32 let monster = MyGame_Sample_GetRootAsMonster(fb)
     33 assert monster.name == "Orc"
     34 
     35 // Convert binary back to JSON:
     36 json2, err2 := flatbuffers_binary_to_json(schema, fb, [])
     37 assert not err2
     38 
     39 // The generated JSON should be exactly equal to the original!
     40 assert json == json2
     41 
     42 // Print what we've been converting for good measure:
     43 print json
     44