4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ZOZOAdvent Calendar 2024

Day 8

HSONについて

Last updated at Posted at 2024-12-07

HSONはHTMLをJSONに似たフォーマットで書くためのライブラリです。
クライアントサイドのQuerySelectorAllメソッドと同様の方法でデータをクエリすることもできます。

まずは以下のようにHSONをパースしてオブジェクトを作成します。
JSONとは異なり同一オブジェクト内に重複するキーが存在してもOKです。

use hson::{ Hson, Debug };

...

let data = r#"{
                "div": {
                  "attrs": {
                    "class": [""],
                    "onClick": "doSomething"
                  },
                  "div": {
                    "p": {
                      "attrs": {},
                      "span": {
                        "text": "Hello"
                      }
                    },
                    "p": {}
                  },
                  "div": {
                    "component": "test",
                    "attrs": {},
                    "onClick": "componentDoSomething"
                  }
                }
              }"#;

let mut hson = Hson::new();
hson.parse(&data).unwrap();
hson.print_data(true);

このhsonオブジェクトをHTML文字列にするためにはstringifyメソッドを使います。

let s = hson.stringify();
println!("{}", &s);

またsearchメソッドを使うと要素を検索できます。
このメソッドはJavaScriptのQuerySelectorAllメソッドに似た操作感を持ってます。

let results = hson.search("div p").unwrap();
println!("\n{:?}\n", results);

この他にもHSONを使うと要素の挿入・削除などの操作や、要素を順番に処理する機能(イテレーション)などができます。

出展:

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?