タグ

JSONに関するklim0824のブックマーク (15)

  • JSONの小ネタと、JSONに対する拡張

    JSONは最も普及したデータ形式の一つでしょう。JSONの仕様はECMA-404やRFC 8259として標準化されています。 ECMA-404 - Ecma International RFC 8259 - The JavaScript Object Notation (JSON) Data Interchange Format 細かいネタ 文字コード RFC 8259では、外部と交換するJSONテキストはUTF-8でエンコードされなければならないということになっています。BOMは禁止です。昔のRFCではUTF-16やUTF-32も許容されていました。 ただし、キーや文字列の中身としては単独のサロゲート(例:"\uD800")は禁止されていません。JSONのキーや文字列はUnicodeスカラー値の列とは限らないのです。 UTF-8を前提とする実装にとっては、単独のサロゲート(不正なUTF-

    JSONの小ネタと、JSONに対する拡張
  • JSONとBigInt

    ちょっと前にblueskyで見かけた話題。もとは「GraphQLのスキーマではintが32ビットしかなくて、64ビット整数とかないのがイケてない」といった話だったかなと思う。直感的にはこれは「Javascriptではすべてが倍精度浮動小数点数だから64bit intがないから」ということになるが、よくよく調べてみるといろいろややこしい歴史的事情があるようだ。 たしかにJSにはもともとひとつのNumber型しかなく、いわゆるdouble型(倍精度浮動小数点)だけで数値を表現してきた。IEEE754の倍精度浮動小数点数は仮数部が52ビットあるので、実際には32ビット整数ていどであれば全て誤差なく表現できる。なので32ビット整数または倍精度浮動小数点数がどちらも使えるというふうに理解されてきた。 そうはいっても不便なので、現代のJSにはBigIntがある。ES2020で導入されたらしい。ただし普

    JSONとBigInt
  • jq が jqlang organization に移譲されました - プログラムモグモグ

    JSONを操作するコマンドラインツールであるjqは、これまでオリジナル作者であるStephen Dolan氏 (@stedolan)のリポジトリ(github.com/stedolan/jq)で管理されていました。 メンテナンスはNico Williams氏 (@nicowilliams)とWilliam Langford氏 (@wtlangford)の二名が行なっていましたが、近年は活動が減っておりメンテナンスが滞っていることが度々指摘されていました。 最新のリリースは2018年11月に行われた1.6であり、その後に様々なバグ修正やパフォーマンス改善、新機能の実装が行われているのにリリースされておらず、またissueやPRも放置されがちになっていました。 さらにCI (AppVeyor)は常に落ちるので、簡単なドキュメント修正でもCIが通らず苦情が来る、数か月放置されたPRは作った人が諦

    jq が jqlang organization に移譲されました - プログラムモグモグ
  • PHPからJavaScriptにデータを受け渡すときに考えること - Qiita

    PHPのstringは任意のバイト列を扱えますが、JavaScript/JSONはUnicodeで扱える文字しか扱えません PHPのint / floatはプラットフォーム依存ですが、JavaScriptのnumberは整数と小数を型レベルで区別しません JSONのarrayに対応する型はPHPのarrayのうちリストであるものです PHPは配列(リスト)と連想配列を型レベルで区別せず、どちらもarrayです リストはキーが0からの抜けがない連番になっている要素が0個以上の配列です array_is_list()関数で連想配列とリストを判別できます array_values()で連想配列をリストに変換できます array_filter()の結果はフィルタされたキーがスキップされるのでリストではありませんが、結果をarray_values()に通すことでリストにできます JsonSerial

    PHPからJavaScriptにデータを受け渡すときに考えること - Qiita
  • まだAPIが出来ていない?私は一向にかまわんッッ

    初記事です。 あるフロントエンドの悩み プロジェクトの納期は決まっていて、すぐに着手しないといけない。 だけど、API はまだできていない... 早く着手したい...、ふぬぬ...。 今回はそんなフロントエンドがバックエンドのタスクの待ちにならないように、並行してアジャイルに開発していけるツールとしてmswをご紹介します。 mswとは? mswとはmock service workerの略で、簡単にモックのAPIを立てることができるライブラリです。 同様のことができるライブラリとしてJSON Serverもありますが、mswには以下の利点があります。 単純にJSONを返すのではなく、ロジックも書くことができる Expressのようにスッキリ書くことができる RESTだけでなく、GraphQLにも対応している 以下のようなケースに向いていると思います。 早く着手しないといけないけど、API

    まだAPIが出来ていない?私は一向にかまわんッッ
  • JSON Schema で複雑な仕様の入力フォームの実装に立ち向かった話

    Ruby on Rails を用いたシステム上で入力フォームを実現する際、Rails が提供しているフォームヘルパーを利用した実装や、ReactVue によるコンポーネントの自前での実装が一般的に行われます。 ここで、職業で学生を選択した場合は学校名と学年、会社員を選択した場合は役職と年収を入力する...といった、条件分岐が大量に生まれる入力フォームを想像しましょう。 一般的な実装手法では、あるフォームの入力値が他のフォームに影響を与えるような、複雑で動的な入力フォームの実現をするために、大量の if 文を書く必要があります。 また、ユーザから送信された入力値の正しさをバリデーションするために、バックエンド側に同様の if 文を大量に書く必要が出てきます。 そこで私は、複雑な仕様の入力フォームの実装のための JSON Schema 活用方法および事例について紹介します。入力フォームの

    JSON Schema で複雑な仕様の入力フォームの実装に立ち向かった話
  • JSONをいい感じに見るCLIを作った

    その他 OS の方は GitHub のrelease ページから DL することができます。 使い方 tv はミニマムな CLI として作ったのでテーブル表示の機能とそれに付随したオプションのみを提供しています。 配列になっている JSON をテーブル表示する キーを指定することでそのキーを使ってソートできる いくつかのスタイルでテーブルを表示できる 以上が主の機能です。 Table 表示 ユースケースとして JSON が帰ってくる API を想定します。 API の例として jsonplaceholder を利用します。 今回は https://jsonplaceholder.typicode.com/users を使います。 この API は以下のようなデータが返ってきます。 $ curl -s https://jsonplaceholder.typicode.com/users [

    JSONをいい感じに見るCLIを作った
  • JSONPath 使い方まとめ - Qiita

    目的 先輩「MockMvcでJSONPathを使おうと思ってて…」 @takkii1010 「…?」 となったので、以下を簡単にまとめたい。 JSONPathとは何者か JSONPathの構文 MockMvcでの使い方 1. JSONPathとは何者か Data may be interactively found and extracted out of JSON structures on the client without special scripting. JSONPath expressions always refer to a JSON structure in the same way as XPath expression are used in combination with an XML document. XPath for JSON 特別なスクリプトを書かず

    JSONPath 使い方まとめ - Qiita
  • JSON Schema をクックパッドマートの商品登録画面に導入した話 - クックパッド開発者ブログ

    主にバックエンドのエンジニアとしてクックパッドマートの開発に携わっている塩出( @solt9029 )です。 美味しい材をユーザにお届けするサービスであるクックパッドマートでは、日々街の販売店や地域の生産者が商品の登録を行っています。 商品を登録する際、販売者は消費期限をはじめとする様々な品質保証の情報を正確に入力する必要があります。 しかし、商品の種類や状態に応じて記載するべき品質保証の情報は異なるため、全項目が羅列されるフォームでは正確な入力が困難であり、販売者および商品の審査を行う社内の運用メンバに対して大きな負担をかけていました。 そこで、 JSON Schema を利用して複雑なフォームの出し分けを自動で制御し、またバックエンド側でのバリデーションも行うことが出来る仕組みを導入しました。 その結果、商品の種類や状態を選択するだけで、適切な品質保証の情報が自動的に入力され、必要な

    JSON Schema をクックパッドマートの商品登録画面に導入した話 - クックパッド開発者ブログ
    klim0824
    klim0824 2021/04/07
    react-jsonschema-form
  • [小ネタ]Javascriptで大きい桁の整数をJSONパースする時の注意点 | DevelopersIO

    JavascriptでJSONにパースしたいデータに大きい桁の整数があった場合は注意が必要です。 16桁を超えた数値を含む場合、超えた桁数分端数が丸め処理されてしまいます。 その場合、json-bigintを使って回避できます。 例 JSONとして解析する文字列 const jsonStr = '{"id": 6476060033855273896}'; Javascript標準ビルトインのJSON.parseでパースすると以下のようなデータになります。 JSON.parse(jsonStr); > { id: 6476060033855274000 } // (_□_;)!! 桁はそのままですが数値が変わってしまいました。エラーは出ていません。 json-bigintを使うと、 const JSONbig = require('json-bigint'); const jsonStr =

    [小ネタ]Javascriptで大きい桁の整数をJSONパースする時の注意点 | DevelopersIO
  • JSON にもコメントを書きたい - Qiita

    JSON の構文は至ってシンプルです。 JSON は名前(キー)と値のペアがセットになった「オブジェクト」から構成されています。 キーはダブルクォートでくくられた文字列です。 値はダブルクォートでくくられた文字列、数値、真偽値、null 値、配列、またはオブジェクトです。 キーと値はコロン( : )で区切ります。 ペアとペアの間はカンマ( , )で区切ります。 前後を中括弧( { , })で挟みます。 { "文字列": "文字列", "数値": 0, "真偽値": true, "null値": null, "配列": [ "要素1", "要素2" ], "オブジェクト": { "キー": "値" } } そう、JSON にはコメントを記載するための構文がないのです。近年では設定ファイルなどで利用されることも多い JSON ですが、コメントによる説明が不要なキーを名付けることは現実的ではあり

    JSON にもコメントを書きたい - Qiita
  • 無料JSONストレージjsonboxを試してみた! | DevelopersIO

    昨夜Github Trendsを眺めていたら、jsonboxというリポジトリを見つけ、面白そうだったので試してみました。 そもそもjsonbox jsonboxは公開された無料のJSONストレージです。制限事項の範囲で自由に使っていいよ!というサービスです。制限事項に関しては後述しています。 README.mdのサービス説明を引用、翻訳します。 HTTP APIを介してJSONデータを無料で保存、読み取り、変更できます。小規模なプロジェクト、プロトタイプ、またはハッカソンに理想的で、独自のデータストアを作成する必要はありません。 基機能を試してみる Create https://jsonbox.io/${BOX_ID}へのPOSTリクエストをすることで、レコード作成できます。同じメッセージでも一意な_idがjsonbox側で振られるので、同じJSONメッセージでも新規レコードとして作成さ

    無料JSONストレージjsonboxを試してみた! | DevelopersIO
  • 良い感じに詰めて整形してくれる JSON pretty-printer「jpp」を作りました - たにしきんぐダム

    jpp というJSON Pretty-Printer を作りました。 github.com このコマンドはJSONを要素ごとに1つ1つ改行するのではなく、画面内(もしくは指定した幅)に収まる限りできるだけ改行を挟まずに要素を表示します。 そのため、例えばarrayの中身に大量の要素が入っているものや、objectの中身にfieldが大量にあるようなJSONを表示する際、改行をできる限り抑えて表示することによりJSONを見通しよく眺めることができます。 背景 JSONを整形して表示することができるCLIツールとして、jq、jsonppや、 python -m json.tool などがありますが(jq はpretty-printのためのツールではないが僕は普段jsonの整形のためによくjqを使っていた)、 これらの既存のJSON pretty-printerを用いて、先に述べたような要素数の

    良い感じに詰めて整形してくれる JSON pretty-printer「jpp」を作りました - たにしきんぐダム
  • Latest JSON (RFC 8259) - Qiita

    RFC 8259 (JSON data format) JSON の新版が公開されました。 復習を兼ねて、変更点とおさらいをまとめておきました。 従来からの変更点 JSON は ECMA-404 と RFC8259 で定義されているが、今後は完全に互換性があるものとして扱われる JSON が最新の UNICODE を参照するようになった。つまり UNICODE の仕様変更で JSON も影響を受ける string は UTF8 が必須に JSON とは JSON はポータビリティを意識して設計された JavaScript のサブセット XML にくらべて手軽に利用できるため、ブラウザ界隈から利用が始まった。現在では広く利用されている JSON の object は JavaScript における Object リテラルである、array も同様に Array リテラルである string,

    Latest JSON (RFC 8259) - Qiita
  • JSONにはコメント行が付けられない?ネットで見つけた方法の有用性を試してみた | DevelopersIO

    はじめに こんにちは植木和樹です。AWSではJSON形式を使う機会が結構多いですよね。ただJSONを使ってて不満なことが一つあります。それはコメント行をつけることができないことです。例えばJavaScriptのようにスラッシュでコメントを表現しようとしても構文エラーとなってしまいます。 { "key" : "value" // コメント } $ cat js_test.json | jq '.' parse error: Invalid numeric literal 特にCloudFormationのテンプレートや、IAMのポリシー設定は内容が複雑になりがちなのでコメントをつけておきたいと思うことが多々あり困っていました。 そんな時このようなブログを見つけました。「Adding Comments to JSON」。JSONでは同じキー文字列の要素が重複した場合に最後に定義したものが優先さ

  • 1