JavaScript Object Notation
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/10/16 15:31 UTC 版)
ライブラリ
JSONは多くのプログラミング言語で利用可能なライブラリーなどが提供されている。例えば、ActionScript, C, C++, C#, ColdFusion, Common Lisp, Curl, D, Delphi, E, Elixir, Erlang, Groovy, Haskell, Java, JavaScript (ECMAScript), Lisp, Lua, ML, Objective-C, Objective CAML, Perl, PHP, Python, R, Rebol, Ruby, Scala, Squeakなど。
ただし、テキストファイル、データを交換する手段を持つプログラミング言語であれば自力でパースして入力したり、フォーマット処理で出力は可能である。
JSONPath
JSONPath は JSON のクエリ式で、JSON の一部分を示すことが出来る。XML の XPath に対応するものとして Stefan Gössner が2007年に提案した[7]。現在 IETF にて仕様が作成中である[8]。様々なプログラミング言語でライブラリが実装されている。データベースでは、Oracle Database[9]、Microsoft SQL Server[10]、MySQL[11]、PostgreSQL[12]、MongoDB[13]、RedisJSON[14]など広く採用されている。
例として、下記 JSON に対する、$.users[0:2].name
の結果は ["Foo", "Bar"]
になる。
{
"users": [
{"name": "Foo"},
{"name": "Bar"},
{"name": "Baz"}
]
}
改行区切りのJSON
1行を1つのJSONとする改行区切りのJSONが複数の人によって提案されている。仕様は同一である。改行コードは \n を使わなければならないが、JSON の末尾に \r があっても無視されることから \r\n も利用可能である。
- JSON Lines (JSONL)[15] - 拡張子は jsonl
- Newline delimited JSON (NDJSON)[16](旧称 Line delimited JSON, LDJSON[17])- 拡張子は ndjson 、MIMEタイプは application/x-ndjson
Comma-Separated Values よりも柔軟性がある。また、JSONの配列を使うよりも可読性があるうえ、ストリーミングにすることができる。以下は例。
{"ts":"2020-06-18T10:44:12","started":{"pid":45678}}
{"ts":"2020-06-18T10:44:13","logged_in":{"username":"foo"},"connection":{"addr":"1.2.3.4","port":5678}}
{"ts":"2020-06-18T10:44:15","registered":{"username":"bar","email":"bar@example.com"},"connection":{"addr":"2.3.4.5","port":6789}}
{"ts":"2020-06-18T10:44:16","logged_out":{"username":"foo"},"connection":{"addr":"1.2.3.4","port":5678}}
- ^ JSON is a lightweight, text-based, language-independent syntax for defining data interchange formats. ECMA-404
- ^ “Introducing JSON”. json.org. 2008年4月19日閲覧。
- ^ a b ongoing by Tim Bray · The Last JSON Spec
- ^ Subsume JSON a.k.a. JSON ⊂ ECMAScript · V8
- ^ Douglas Crockford: The JSON Saga - YouTube
- ^ A JSON value can be an object, array, number, string, true, false, or null. ECMA-404
- ^ “JSONPath - XPath for JSON”. goessner.net. 2023年6月8日閲覧。
- ^ JSON Path (jsonpath) - IETF Datatracker
- ^ “JSON Developer's Guide”. Oracle Help Center. 2023年6月8日閲覧。
- ^ jovanpop-msft. “JSON Path Expressions - SQL Server”. learn.microsoft.com. 2023年6月8日閲覧。
- ^ “MySQL :: MySQL 8.0 Reference Manual :: 11.5 The JSON Data Type”. dev.mysql.com. 2023年6月8日閲覧。
- ^ PostgreSQL: Documentation: 15: 9.16. JSON Functions and Operators
- ^ “json-path Output Type — MongoDB Command Line Interface”. mongodb.com. 2023年6月8日閲覧。
- ^ “Path”. Redis. 2023年6月8日閲覧。
- ^ JSON Lines
- ^ ndjson
- ^ Update specification_draft2.md · ndjson/ndjson-spec@c658c26
- ^ “JSON5 – JSON for Humans”. JSON5. 2023年5月31日閲覧。
- ^ “YAML is JSON”. 2009年7月22日時点のオリジナルよりアーカイブ。2013年5月15日閲覧。
- ^ “3.2.1. Representation Graph - YAML Ain’t Markup Language (YAML™) Version 1.2”. yaml.org. 2013年5月15日閲覧。
固有名詞の分類
プログラミング言語 |
チューリング完全 Concurrent Prolog JavaScript Object Notation 軽量プログラミング言語 Squeak |
プログラミング言語の構文 |
Abs アリティ JavaScript Object Notation 字下げ NOT NULL制約 |
データシリアライゼーションフォーマット |
Base64 JavaScript Object Notation WDDX Extensible Markup Language Quoted-printable |
- JavaScript Object Notationのページへのリンク