You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
CTO兼福岡オフィス立ち上げ担当として新アプリを作っている@edvakfです。 JSON APIを開発しているとこういう問題がありがちですよね。 仕様どおりにAPIの形式を作ったはずだけどなんか自信が持てない テストでいくつかのキーが存在するかの簡単なチェックはしてるつもりだけど、全部チェックするのは大変すぎる APIのControllerやViewをリファクタリングしたらレスポンスの形が変わってアプリがめっちゃクラッシュし始めた というのが怖くて誰もリファクタリングできなくなった APIドキュメントがメンテされない 知らない間にレスポンスのフィールドが増えてたけどドキュメントに書いてない これらを解決したい!と思って試行錯誤したら、スマートに解決することができました。この記事ではRailsのことについて書きますが、考え方は他の言語・フレームワークでも同じです。 なお、今回使ったgemのバ
■ Ruby 2.4 で json-1.8.x のビルドエラーで死んだ時の対処方法 Ruby 2.4.0 で導入予定の Integer Unification まとめ から 4 ヶ月経ちましたが、せっせと関係各所の pull request を投げ続けたものの、未だに解決できてない箇所、マージされてもリリースされてない gem などが多分にあるので、今の時点でできることを書いておきます。 Gemfile に gem 'json', git: 'https://github.com/flori/json', branch: 'v1.8' を追加する。 Integer Unification に対応した 1.8.4 がリリースされるといいですね(棒読み) json の依存を外す対応が行われているけど、リリースされてない gem にリリースしてくれと issue を立てて要求する json の依
最近触っているソフトウェアは立て続けに設定をjsonを書かせるものばかりで辟易としていたところに、何かまともなものはないかと調べていたらhjsonというものがあった。 better JSON的なノリで作られたもののようだが、考案者自身がRFCも書いているなど、なかなかやる気に満ち溢れているように見える。 ところが残念なことに、自分が発見した時点ではruby製のhjsonパーサがまだ存在していなかったため、サクッと書いてみたので記事も書く。 namusyaka/hjson 使い方 基本的にHjson.parseしか使わない前提。 require 'hjson' hjson = <<HJSON // for your config // use #, // or /**/ comments, // omit quotes for keys key: 1 // omit quotes for s
MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました JSONを使ってデータの送受信を行うことが増えています。通常はシステムから出力するだけなのですが、時には手作業で作らなければならない時もあるでしょう。そんな時に面倒なルールに引っかかってうまくパースできない時があります。 そこで使ってみたいのがjoです。コマンドラインでJSONを作成できるソフトウェアです。 joの使い方 joはデータを引数にコマンドを実行するだけです。 $ ./jo -p name=jo n=17 parser=false { "name": "jo", "n": 17, "parser": false } このように引数がそのままJSONとして生成されます。ごく基本的なJSONしか生成できませんが、数値やBloolean型の判別はできるようになっています。 jo
« golang で画像アップロードが簡単に出来る go-imageupload を使ってみた。 | Main | SQLite3でカジュアルにズンドコキヨシ » コマンドラインから JSON を扱うツールとしては jq が一般的ですが、例えば ls を実行した結果を JSON の Array にしたいであったり、コマンドライン引数から簡単に Object を作りたいといった場合には一旦考え込まないといけないくらい使い方が難しかったりします。そんな中でひょいと現れたのが jo です。 GitHub - jpmens/jo: JSON output from a shell JSON output from a shell https://github.com/jpmens/jo 作者である jpmens さんがなぜ jo を作るに至ったかをブログに書いています。 Jan-Piet Mens
Maybe you haven’t heard of GraphQL. It’s a query language for front-end engineers to retrieve data from the back-end. It might be helpful to think of GraphQL as an alternative to REST or JSON-API. So why does GraphQL matter? Why ditch known quantities like REST, SOAP, or whatever homegrown system you’re using? The specification’s Overview has some good points, but let me appeal to you in a differe
このたび JSON パーザのベンチマークを書きましたので、どうぞご査収下さい。 taichi/json-benchmarks Java8 がインストール済みの環境で、当該リポジトリを clone して ./gradlew jmh と実行する事で追試できます。 結果について jackson-databind が最速なので殆どの皆様におかれましては安心して下さい。 特に驚きに値するような事は何も起きていません。 僕のマシンで実行した結果はこちらです。(エビデンスが無いとの指摘を受け追記しました。) Json benchmark results 結構な長文になってしまいましたので、マニアな皆様だけが続きを読んで下さい。 課題設定について まず、おおまかな課題設定について説明します。 JMH を使った本格的なベンチマークを書く Java 用 JSON パーザのショーケースを作る事で使い易いもの
TL;DR JSON Schemaを使ってこういうことが実現可能になった。 ダミーAPIサーバの提供 ドキュメントの自動生成 APIクライアントの動的定義 APIサーバのバリデータの動的定義 APIサーバのレスポンスの自動テスト JSON Schemaとは JSON SchemaというのはあるJSONのデータ構造を記述するための方法および書式の仕様で、 JSON SchemaもJSONで記述される。 これを利用すれば、リソースベースの(=RESTfulライクな)APIの仕様が簡便に記述できる。 例えば、我々のAPIはレシピとユーザというリソースを扱っていて、 それぞれCRUDのAPIを備えており、レシピはidとtitleとdescriptionという属性を持つ、 という旨をJSON Schemaで表現できる。 なんで最近ちょっと流行ってんの Mobile First、 Service Or
多くのiOSアプリはサーバーとの通信が必要で、やりとりされるデータのフォーマットにはJSONが採用されることが多いと思います。 iOS 5からは標準ライブラリにNSJSONSerializationが導入され、特に理由がなければJSONのエンコード/デコードにはこれを利用します。 NSJSONSerializationが扱うオブジェクトは以下の5種類のオブジェクトです。 NSString NSNumber NSArray NSDictionary NSNull そこで心配になるのが、予期しないところにNSNullが入ってきて”unrecognized selector sent to instance.“となってしまうことです。 NSNullではなくてnilが入っていてほしいと考える人は多いようですが、そもそもNSArrayやNSDictonaryはnilを含むことはできず、 そのような状
このまえ、標準のJSONクラスの替わりにYajlを使ってみたのですが、 もっと速いと噂のOJ( Optimized JSON)でベンチマークを取ってみました。 https://github.com/ohler55/oj 結果は以下の通り。 サンプルにしたjsonデータは仕事で使っているので晒せないのですが、500行くらいあります。 エンコードが圧倒的に速いですね! Yajlでは差が出なかったデコードもだいぶ速いです。 Rehearsal ---------------------------------------------------- encode with oj 4.900000 0.040000 4.940000 ( 5.251580) encode with json 38.770000 0.250000 39.020000 ( 41.966557) -------------
jq Manual jqで簡単JSON加工 | Developers.IO jqコマンドが実は高性能すぎてビビッた話 - beatsync.net JSONを超絶に読みやすくする jq コマンド - WebAPIバリバリ使うor開発する人必須 CLIでJSONの整形をする - ( ꒪⌓꒪) ゆるよろ日記 JSON形式の情報を様々な条件や書式として成形、フィルタリングツール『jq』。上記関連エントリで私もこのツールの存在を知る事になったのですが、ツールの簡易さ・便利さに感動しながら私もちょくちょく利用させてもらっています。 そこでこのエントリでは、jq公式ページに展開されている利用ガイド・リファレンス的な位置付けの『jq Manual』を写経がてらざっくり日本語訳してみました。ざっくり訳なのでこの部分の訳おかしい・間違ってる等ありましたら御指摘頂けると幸いです。例示されているサンプルコードも
はせがわようすけ氏のブログエントリ「機密情報を含むJSONには X-Content-Type-Options: nosniff をつけるべき」にて、巧妙な罠を仕掛けることにより、別ドメインのJSONデータをvbscriptとして読み込み、エラーハンドラ経由で機密情報を盗み出すという手法が紹介されました。これは、IEの脆弱性CVE-2013-1297を悪用したもので、MS13-037にて解消されていますが、MS13-037はIE6~IE8が対象であり、IE9以降では解消されていません。 また、MS13-037を適用いていないIE6~IE8の利用者もしばらく残ると考えられることから、この問題を詳しく説明致します。サイト側の対策の参考にして下さい。 問題の概要 JSON形式のデータは、通常はXMLHttpRequestオブジェクトにより読み出しますが、攻撃者が罠サイトを作成して、vbscript
GWが始まりましたが、鎌倉のGWは観光客多すぎて逆に住民はげんなりして外に出なくなる感じです。とはいえ路地まで観光客が攻め込んでくることは少ないので、路地を散歩する分には天気がよくていい感じですね。ちなみに人力車のおにーさんはそういう味のある路地を知り尽くしているので人力車で移動するのはそこそこオススメです(ぼくは乗ったことないけど「こんなところも通るんだ!」ってところで見かけたりします)。 さて、jqというコマンドをご存じでしょうか。 jq jq is a lightweight and flexible command-line JSON processor. と書いてあるとおり、コマンドラインでJSONを扱うことができるコマンドです。で、今まさに仕事で巨大JSONと戦うことが多く、このコマンドが大活躍です。 とはいえ、ぼくの使い方としては「巨大JSONをキレイに整形して表示する」とい
curlとかで取ってきたJSONを整形して表示したかったのでググったらいい方法があったので。 unix - How to pretty-print JSON from the command line? - Stack Overflow パイプで`python -mjson.tool`に渡すだけ。pythonすごい。 $ curl -s http://api.tumblr.com/v2/blog/david.tumblr.com/info\?api_key\=fuiKNFp9vQFvjLNvx4sUwti4Yb5yGutBN4Xh10LXZhhRKjWlV4 | python -mjson.tool { "meta": { "msg": "OK", "status": 200 }, "response": { "blog": { "ask": true, "ask_anon": false
while(1);[['u',[['smsSentFlag','false'],['hideInvitations','false'],['remindOnRespondedEventsOnly','true'],['hideInvitations_remindOnRespondedEventsOnly','false_true'],['Calendar ID stripped for privacy','false'],['smsVerifiedFlag','true']]]] これ以外にもGoogleのサービスでは &&&START&&& とか while(1); &&&START&&& てのが先頭に入ってたりするんだけど、これは一体何? 解答 これはクロスサイト・リクエスト・フォージェリ対策。 例えばGoogleが gmail.com/json?action=inbox というURL
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog Yahoo!デベロッパーネットワークの中野(@Hiraku)と申します。 「WebAPIの魅力を存分に宣伝せよ」という使命を受けまして、これから何度かTechblogを書くことになります。以後、お見知りおきを。 さて、Yahoo! JAPANが公開しているWeb APIはたくさんありますが、JSONPに対応しているものがいくつかあります。ショッピング、オークション、YOLP、震災関連情報などです。 JSONPについて詳しくは過去記事を見てください。 他の形式に比べると、サーバーを準備しなくてもブラウザーだけで動かすことができ、古いブラウザーでも動くという、JSONPにしかないメリットがあります。夢のような形式!なのです。 …そのは
https://github.com/kimoto/csvmapper Usage require 'csvmapper' class MyCSV < CSVMapper column :name, 0, :integer column :ipaddr, 1, :ipaddr column :file_path, 2, :pathname column :time, 3, :time end p MyCSV.load("name1,127.0.0.1,./tmp/path/to/file.txt,2012/01/01") # => [{"name":"name1","ipaddr":"127.0.0.1","file_path":"./tmp/path/to/file.txt","time":"2012-01-01 00:00:00 +0900"}] なんとなく動くけど、もうちょい作り込む
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く