5
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 14

OSONについて

Last updated at Posted at 2024-12-13

OSONはoson structured object notationの略で、JSONにある多くの問題を解決したものだそうです。
以下にOSONの機能を紹介します。

循環参照

OSONはJSONと異なり、循環参照を扱うことができます。

const obj = {};
obj.self = obj;
JSON.stringify(obj); // error
oson.stringify(obj); // works!

参照の繰り返し

また、OSONはJSONと異なり、繰り返された参照を扱うこともできます。

const obj = {};
const arr = [obj, obj];
const [left, right] = JSON.parse(JSON.stringify(arr));
assertStrictEquals(left, right); // error
const [l, r] = oson.parse(oson.stringify(arr));
assertStrictEquals(l, r); // works!

undefined

OSONはundefinedもうまく扱えます。

const undef = oson.parse(oson.stringify(undefined));
assertStrictEquals(undef, undefined);

スパースな配列

スパースな配列もOSONでエンコードできます。

const arr = [5, , , , 6, , , 7];
console.log(oson.parse(oson.stringify(arr)));
// [ 5, <3 empty items>, 6, <2 empty items>, 7 ]

bigint

bigint型にも対応しています。

const num = 10n ** 1000n;
JSON.stringify(num); // error
oson.stringify(num); // works!

他の型への対応

他にも以下の組み込み型に対応しています。

  • Map
  • Set
  • Date
  • RegExp
  • Error
  • Uint8Array
  • URL

出展:

5
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
5
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?