タグ

*JavaScriptとJSONに関するAkinekoのブックマーク (4)

  • [小ネタ]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パーサー『jq』のドキュメント:『jq Manual』をざっくり日本語訳してみました | DevelopersIO

    jq Manual jqで簡単JSON加工 | Developers.IO jqコマンドが実は高性能すぎてビビッた話 - beatsync.net JSONを超絶に読みやすくする jq コマンド - WebAPIバリバリ使うor開発する人必須 CLIでJSONの整形をする - ( ꒪⌓꒪) ゆるよろ日記 JSON形式の情報を様々な条件や書式として成形、フィルタリングツール『jq』。上記関連エントリで私もこのツールの存在を知る事になったのですが、ツールの簡易さ・便利さに感動しながら私もちょくちょく利用させてもらっています。 そこでこのエントリでは、jq公式ページに展開されている利用ガイド・リファレンス的な位置付けの『jq Manual』を写経がてらざっくり日語訳してみました。ざっくり訳なのでこの部分の訳おかしい・間違ってる等ありましたら御指摘頂けると幸いです。例示されているサンプルコードも

    軽量JSONパーサー『jq』のドキュメント:『jq Manual』をざっくり日本語訳してみました | DevelopersIO
  • JavaScriptで階層構造・木構造のJSONを入れ子集合モデルに変換する - きっちゃてん!

    つまりどういうことかというとですね。 例えば、こんな木構造があったとするじゃないですか。 この場合は4階層で済むけど、受け取るデータは何階層かも分からない。 そんなJSONデータを処理するとします。 var obj = [{ "human" : "社長", "secondary" : [ { "human" : "部長1", "secondary" :[ { "human" : "平社員1", "type" : "noboss"}, { "human": "平社員2", "type" : "noboss"}, { "human" : "平社員3", "type": "noboss" } ], "type" : "boss" }, { "human" : "部長2", "secondary" :[ { "human" : "係長1", "secondary" :[ { "human"

  • JSONのエスケープをどこまでやるか問題 - 葉っぱ日記

    Ajaxなアプリケーションにおいて、サーバからJSONを返す場合に、JSON自体はvalidであるにも関わらず、(IEの都合で)エスケープが不足していて脆弱性につながってる場合があるので、書いておきます。 発生するかもしれない脆弱性 JSONのエスケープが不足している場合に発生する可能性のある脆弱性は以下の通りです。 JSON内に含まれる機密情報の漏えい XSS それぞれの詳細については後述します。 開発側でやるべきこと 文字列中のUnicode文字は "\uXXXX" な形式にエスケープするとともに、ASCIIな範囲であっても「/」「<」「>」「+」も同様にエスケープすることにより、前述の脆弱性を防ぐことができます。 Perlであれば、以下のような感じになります。JSON->ascii(1) に続けて、JSON文字列を正規表現で置換しているあたりがキモになります。 use utf8; u

    JSONのエスケープをどこまでやるか問題 - 葉っぱ日記
  • 1