1// Copyright (c) 2023 Huawei Device Co., Ltd.
2// Licensed under the Apache License, Version 2.0 (the "License");
3// you may not use this file except in compliance with the License.
4// You may obtain a copy of the License at
5//
6//     http://www.apache.org/licenses/LICENSE-2.0
7//
8// Unless required by applicable law or agreed to in writing, software
9// distributed under the License is distributed on an "AS IS" BASIS,
10// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11// See the License for the specific language governing permissions and
12// limitations under the License.
13
14//! cargo build --example ylong_json_example
15//! Simple use examples of serialization and deserialization of JsonValue.
16
17use std::io::stdout;
18use ylong_json::JsonValue;
19
20const JSON_TEXT: &str = r#"
21{
22    "null": null,
23    "true": true,
24    "false": false,
25    "number": 3.14,
26    "string": "Hello World!",
27    "array": [1, 2, 3],
28    "object": {
29        "key1": 1,
30        "key2": 2,
31        "key3": 3
32    }
33}
34"#;
35
36fn main() {
37    let value = JsonValue::from_text(JSON_TEXT).unwrap();
38    let mut console = stdout();
39    value.formatted_encode(&mut console).unwrap();
40    value.compact_encode(&mut console).unwrap();
41}
42