6
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 20

usonについて

Last updated at Posted at 2024-12-19

μson (uson)はシェルのために特別に設計された、人間が読めるコンパクトなデータシリアライゼーションフォーマットです。

以下の特徴を持ちます。

  • JSONの上位互換
  • ホワイトスペースはパース結果に影響を与えません
  • 文字列を " でクォートすることはオプションです
  • 配列の区切りの , はホワイトスペースで代替できます
  • コロン : を繰り返すことでネストしたオブジェクトを表現できます
  • カスタムデータ型をしようでき、! でキャストできます

以下のUSONオブジェクトは、

endpoint:id:wikipedia pages:[Malta Prague "New York"]

JSONではこの用に表現されます。

[
  {
    "endpoint": {
      "id": "wikipedia"
    }
  },
  {
    "pages": [
      "Malta",
      "Prague",
      "New York"
    ]
  }
]

サポートされている型

USONは以下の型を持ちます

  • false
  • null
  • true
  • array
  • object
  • number
  • string

基本的な型

基本的な型の例を示します。

number:12.05 text:Banana quotedText:"John Devilseed" empty:null good:true

このUSONは以下のJSONと同等です。

{
  "number": 12.05,
  "text": "Banana",
  "quotedText": "John Devilseed",
  "empty": null,
  "good": true
}

配列型

[] で囲むことで配列を表現できます。

simple:[1 2 3] texts:[Malta Budapest "New York"] objects:[{id:1}]
{
  "simple": [
    1,
    2,
    3
  ],
  "texts": [
    "Malta",
    "Budapest",
    "New York"
  ],
  "objects": [
    {
      "id": 1
    }
  ]
}

オブジェクト型

obj:{name:John} {nested:[{id:42} value:"Nagano"]}

オブジェクト型の表現には {} を使います。

{
  "obj": {
    "name": "John"
  },
  "nested": [
    {
      "id": 42
    },
    {
      "value": "Nagano"
    }
  ]
}

ネストしたオブジェクト

コロン : を繰り返すことでネストしたオブジェクトを表現できます。

cities:eu:hu:budapest:Budapest
[
  {
    "cities": {
      "eu": {
        "hu": {
          "budapest": "Budapest"
        }
      }
    }
  }
]

キャスト

!を使ってキャスト表現できます。例えば、以下は文字列型の42を表しています。

str!42

コメント

# から行末まではコメントとして扱われます。

array:[1 2 3] # this is comment
6
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
6
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?