タグ

JavaScriptとjsonに関するysk_lucky-starのブックマーク (29)

  • 事実上最後のJSON仕様「RFC 8259」と「ECMA-404 2nd Editon」公開。UTF-8エンコード必須に

    RESTful APIのデータフォーマットなどで広く使われているJSON。IETFはJSON仕様「RFC 8259」を発表。従来の仕様をブラッシュアップしつつECMAの仕様との統一も実現した、事実上最後のJSON仕様になると見られる。 IETFからJSON(ジェイソン)の仕様を示した「RFC 8259」(The JavaScript Object Notation (JSON) Data Interchange Format)が公開されました。 IETFにおけるJSON仕様は、これまで「RFC 7159」が参照されていましたが、RFC 8259の公開によりRFC 7159は廃止(Obsolete)となりました。 RFC 8259は、多数の実装と十分な運用実績を積み重ねたインターネット標準「STD 90」としても参照されます。 ECMAとの統一を実現。事実上最後のJSON仕様になると見られる

    事実上最後のJSON仕様「RFC 8259」と「ECMA-404 2nd Editon」公開。UTF-8エンコード必須に
  • jquery.cookieでjsオブジェクトをJSONで保管するメモ - すたら日記

    要望 フォームの入力情報をクッキーに保存したい。 1つのクッキーに複数の項目の情報をまとめて保存したい。 解決策jQueryプラグインの"jquery.cookie"を使うことで全て解決しました。 外部: https://github.com/carhartl/jquery-cookie デモ: https://codepen.io/sutara79/pen/GBdKQX 解説自動JSON化のオプションを有効にすれば、JavaScript側では連想配列として、クッキー側ではJSON形式の文字列として扱えるように自動で変換してくれます。 // 自動JSON化を有効に $.cookie.json = true; // 連想配列をJSONで保存 var hash1 = { ... } $.cookie('cookie1', hash1); // JSONを連想配列に復元 var hash2 =

    jquery.cookieでjsオブジェクトをJSONで保管するメモ - すたら日記
  • XMLでもJSONと同等のパフォーマンスを実現できる

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    XMLでもJSONと同等のパフォーマンスを実現できる
  • 機密情報を含むJSONには X-Content-Type-Options: nosniff をつけるべき - 葉っぱ日記

    WebアプリケーションにおいてJSONを用いてブラウザ - サーバ間でデータのやり取りを行うことはもはや普通のことですが、このときJSON内に第三者に漏れては困る機密情報が含まれる場合は、必ず X-Content-Type-Options: nosniff レスポンスヘッダをつけるようにしましょう(むしろ機密情報かどうかに関わらず、全てのコンテンツにつけるほうがよい。関連:X-Content-Type-Options: nosniff つかわないやつは死ねばいいのに! - 葉っぱ日記)。 例えば、機密情報を含む以下のようなJSON配列を返すリソース(http://example.jp/target.json)があったとします。 [ "secret", "data", "is", "here" ] 攻撃者は罠ページを作成し、以下のようにJSON配列をvbscriptとして読み込みます。もちろ

    機密情報を含むJSONには X-Content-Type-Options: nosniff をつけるべき - 葉っぱ日記
  • jqコマンドが実は高性能すぎてビビッた話

    GWが始まりましたが、鎌倉のGWは観光客多すぎて逆に住民はげんなりして外に出なくなる感じです。とはいえ路地まで観光客が攻め込んでくることは少ないので、路地を散歩する分には天気がよくていい感じですね。ちなみに人力車のおにーさんはそういう味のある路地を知り尽くしているので人力車で移動するのはそこそこオススメです(ぼくは乗ったことないけど「こんなところも通るんだ!」ってところで見かけたりします)。 さて、jqというコマンドをご存じでしょうか。 jq jq is a lightweight and flexible command-line JSON processor. と書いてあるとおり、コマンドラインでJSONを扱うことができるコマンドです。で、今まさに仕事で巨大JSONと戦うことが多く、このコマンドが大活躍です。 とはいえ、ぼくの使い方としては「巨大JSONをキレイに整形して表示する」とい

    jqコマンドが実は高性能すぎてビビッた話
  • JavaScriptオブジェクト用問い合わせ言語·SpahQL MOONGIFT

    SpahQLはJavaScriptオブジェクトのデータ抽出に使えるクエリライブラリです。 WebアプリケーションではデータをJSONで利用するのが一般的です。データが大量にあるのであれば、そこから欲しいデータだけを抽出する仕組みが必要になるでしょう。JavaScriptでそれを可能にするのがSpahQLです。 例です。hash1というキーに対応したデータを取り出しています。 ネストして調べられます。 配列、ハッシュどちらにも使えます。 配列の場合は0などとキー指定もできます。 配列でサイズが1以上のものをピックアップしています。 データは抽出するだけでなく、プロパティを使ってサイズやデータの種別を調べることもできます。さらに正規表現を絡めてマッチするか否かをチェックするといった機能もあります。node.js、Webブラウザどちらでも使えるライブラリになっています。 SpahQLはJavaS

    JavaScriptオブジェクト用問い合わせ言語·SpahQL MOONGIFT
  • TwitterのAPIから取得した日付のフォーマットを整えたよ « ひきだし « awayuki.net : あわゆきのβ版

    JuitterというjQueryのプラグインを使って、Twitterのタイムラインをサイトに表示させた時に、日付のフォーマット(タイムゾーン)が気に入らなかったので直した時の記録です。 Juitterに限らず、外部サイトからのフィードなどで、取得先のフォーマットを変えることができない時にも応用できますよ。 Juitterを入れてみたら、なんだか日付がおかしいことに気づいた(´・ω・`) あわゆきのβ版のホームでは、JuitterでTwitterの自分のタイムライン@awayukiのタイムラインを表示させています。 JuitterはjQueryのプラグインで、簡単なカスタマイズでTwitterのタイムラインを自分の好きな形で設置できる優れもの。そんな噂を聞きつけてここぞとばかりに導入してみたのですが、実際に動かしてみて、時間がズレていることに気づきました。 Juitterでの時間表示 Fri

  • JavaScriptでTwitterの日付を日本語に直す

    Twitterの投稿データをJSONなどで取得すると、日付は「Tue Dec 16 23:48:56 +0000 2008」のようになります。 英語表記なので分かりにくい上、そもそもイギリス時間。 これを「2008年12月17日 8:48:56」のような日語表記に直すJavaScriptの例です。 function twitterdate(td){ //変換前「Tue Dec 16 23:48:56 +0000 2008」 //変換後「2008年12月17日 8:48:56」 re=/^(.+) (.+) (..) (..):(..):(..) (.+) (.+)$/; pat="$2 $3, $8 $4:$5:$6 UTC+0000"; rep=new Date(td.replace(re,pat)); return rep.toLocaleString(); }

    JavaScriptでTwitterの日付を日本語に直す
  • JavaScriptをやり始めた人が理解したほうが良いJSONパーサのコード - sifue's blog

    そろそろ4月も近いということもあって、新たにWeb業界やSIer業界に入るぞという方がプログラミングの勉強をし始めているころでしょうか。最近は、エンタープライズでもWebクライアントが主流になりつつあるのでJavaScriptの習得は避けては通れない道だと思います。また、Node.js等サーバーサイドのJavaScriptも出てきたこともあって、非常に有用な言語になりつつあります。 そんなJavaScriptを学び始めている人の中でも、ある程度プログラミングをやったことがある人がJavaScriptの綺麗な書き方を学ぶのに絶対理解しておいた方が良い300行程度のソースコードがあります。 それは、JavaScript: The Good Partsに載っているJSONパーサのコードです。 JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス 作者:

    JavaScriptをやり始めた人が理解したほうが良いJSONパーサのコード - sifue's blog
  • SQLとJSONをNode.js上で組み合わせた新言語「ql.io」をeBayが公開

    eBayが、JavaScriptアプリケーションからSQL文のような形式でデータベースへの問い合わせを記述できるDSL(ドメイン固有言語)のql.ioを発表。オープンソースとして公開しました。 現在、多くのWebアプリケーションが、バックエンドとのデータのやりとりにHTTPをベースにしたAPIを用いています。しかし、WebベースのAPIによってデータを取り出すのは、プログラマにとって実は手間のかかることです。 例えば、キーワードを入力すると関連する商品の名前、詳細、購入者の評価をユーザーに表示する、というWebアプリケーションでは、まずキーワードでデータベースを検索して商品IDを取得し、今度はその商品IDをキーにして名前や概要、評価の情報を取得する、といったように、APIを繰り返し呼び出す必要があります。 ql.ioはこうした内容をSQLのように分かりやすい記述で実現するだけでなく、複数の

    SQLとJSONをNode.js上で組み合わせた新言語「ql.io」をeBayが公開
  • 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"

  • $.dataはHTML5 datasetのラッパーではない

    $.dataはHTML5のdatasetラッパーでない HTML5では要素に任意の属性を追加出来るdata-*属性がサポートされました。仕様では <div data-foo="bar">...</div> data-fooの値はdiv.dataset.fooでアクセスすることが出来ます。ただしdatasetは現在一部ブラウザでしかサポートされていない。。そこでjQueryに存在する$.dataメソッドを使いましょう、という流れなのですが、$.dataをラッパーとして見た場合結構罠がありおすすめ出来ません。中途半端に対応してしまったために誤解されがちですが、$.dataはdatasetのラッパーではありません。 属性値がJSONとして解釈出来る場合、パースして返す <div id="test1" data-json="{"foo":"bar"}">...</div> $('#foo').da

  • JSONとJSONPの違い - あと味

    解説は他にもたくさんありますが、私自身も使いはじめの頃、違いがよくわからなかったので。 JSONとは? 汎用的なデータ記述方法です。こんな感じで書きます。 { 'blog' : 'あと味', 'author' : 'jdg' } まさにJavaScriptのオブジェクトですね。*1 JSONPとは? JSONを以下のように変えたもの。 callback({ 'blog' : 'あと味', 'author' : 'jdg' }); 関数呼び出しっぽいですね。まぁ、関数呼び出しなんですけど。 どゆこと?となるポイント 見た目が関数っぽくなる意外に変更点はないように見えますが、クロスドメインでJSONを読み込む時は、なぜかJSONではなく、JSONPが使われます。(WebAPI等) また、アクセスしたらJSON形式のデータを返す単純なCGIを自分で作りたいと思った場合でも、JSONを返しても、J

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

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

    JSONのエスケープをどこまでやるか問題 - 葉っぱ日記
  • なぜJavaScriptで「76287755398823936」が正しく表示できないか、あるいはなぜRubyでも表せないか。 - ψ(プサイ)の興味関心空間

    Twitter住所特定実験」を開発中に気づいた事です。取得したツイートをサーバからJSONでクライアント側のJSに送る処理があって、当初この時にTwitterのツイートのIDをJSONに数値として含めて送っていました。 が、JavaScriptではこの値を受信してeval()した†1際、うまく変換することができず、たとえばChrome/Firefoxでは「76287755398823940」となり、微妙に異なった数値になってしまいました。 以下をクリックすることで、実際に実行できます。 javascript:alert(76287755398823936) IE8/9だと「76287755398823930」となり、まだ微妙に違った値になります。 ■doubleの精度の問題?? まず疑われたのはdoubleの精度の問題。一部では有名な話で、JavaScriptでは数値はすべてdouble

  • Big Sky :: XSLTも使わないAmazon最速検索

    2009/07/16 追記 AWS認証制限に対応しました。文中はそのままですが、デモには非公開キーを使用してアクセスするCGIに変更しています。 時代は便利になった物です。 MOONGIFT: » XMLをJSONにするXSLT「xml2json.xslt」:オープンソースを毎日紹介 xml2json.xsltを見ていたらma.la氏のAmazon最速検索を思い出した。あちらはAmazon AWS専用になるだろうが、xml2json.xsltはそれをもっと汎用的なものにしたと考えられるだろう。 http://www.moongift.jp/2009/04/xml2json-xslt/ javascriptとXSLTを使うならば、AWSサーバから見えるサーバを用意しないといけないのですがYahoo! YQLを使えばそれも要りません。 YQLといえばPipesに毛の生えた様な物だと思う方もい

    Big Sky :: XSLTも使わないAmazon最速検索
  • JSONデータをソートする方法

    JSONデータをソートする方法を紹介します。 ブラウザやPC環境等に依存するかもしれませんが、FirefoxやGoogle Chromeといった最近のブラウザであれば数千行のデータでも1秒かからない程度でソートして表示されます。すべてのブラウザで確認していないので不具合があったらすいません。 引用サイトは下記です。 How to sort a JSON array ? 1.基 次のようなJSONデータがあると仮定します。 var data = [ {"id":"foo", "number":"2000"}, {"id":"bar", "number":"3000"}, {"id":"hoge" "number":"1000"} ]; JSONデータをソートするには、次のsort_by()関数とsortを組み合わせます。 var sort_by = function(field, reve

    JSONデータをソートする方法
  • JavaScriptでJSONをeval - sshi.Continual

    JSON文字列をevalして値を取りたいときに挙動が妙ではまった、という話を聞いたので、Firefox1.5上のFireBugのコンソールで何パターンか試してみた。 {"key":"value"}というJSONデータが文字列で渡ってきて、それをevalしてJavaScriptの値として使いたい、という想定。 間違ったJSON文字列をevalした場合 >>> jsonstr = "{key:\"value\"}" "{key:"value"}" >>> var obj = eval(jsonstr) >>> obj "value" >>> typeof(obj) "string"JSONのオブジェクトでは、ラベルも""でくくって文字列にしないといけないのだが、まずはそれを忘れた場合を試してみた。結果として返ってくるのは、なんとJSONのハッシュの要素にしたつもりの文字列のみ。 正しいJSON

    JavaScriptでJSONをeval - sshi.Continual
  • JavaScript HTMLテンプレートエンジン SNBinder 公開

    先日予告したSNBinderのオープンソース化、GitHubに簡単なREADME付きでアップロードしたのでご覧いただきたい。 https://github.com/snakajima/SNBinder SNBinderは、ひと言で言えば「ブラウザー上でView(テンプレート)とData(JSON)を結合して HTML を生成するテンプレートエンジン」である。 90年の半ばから急速に広まったインターネット。サーバー側でダイナミックに生成したHTMLページをブラウザーで閲覧するだけ、というシンプルでエレガントなアーキテクチャゆえの成功だ。しかし、ブラウザーの高機能化に伴い、JavaScriptを駆使して使いやすさを向上しようという試みが色々なウェブサイトで行われている。GMail、Google Docs、Facebookなどは良い例だ。 その方向性を究極にまで突き詰めると、サーバー側は(MVC

  • less - jQuery Templatesプラグインが面白い

    jQuery Templatesプラグインが面白い jQuery TemplatesプラグインはjQuery公式のテンプレートエンジンです。元々マイクロソフトのASP.NET Ajax Libraryで実装されていた機能を切り出したものらしい。 jQuery Templates, Data Link, globalization が公式 jQuery プラグインに加わりました - THE TRUTH IS OUT THERE - Site Home - MSDN Blogs 現在は1.0.0pre。そろそろ出るjQuery 1.5には標準で入る模様です。preですがマイクロソフトのCDNが利用出来ます。 配列を渡すと自動的にループして出力されるなど、JSONをそのまま渡して動くように意識されているところが面白いと思いました。 <ul id="name-list"></ul> <script

    ysk_lucky-star
    ysk_lucky-star 2011/01/07
    1.5で組み込まれる予定なのね