タグ

jsonに関するamari3のブックマーク (26)

  • jqを活用してAPIレスポンス等から欲しい情報だけを抽出する【中級編】 | DevelopersIO

    よく訓練されたアップル信者、都元です。引き続きjqのお話。日は中級編です。 日のお題は、このような入力値 example.json を利用します。 { "foo": { "bar": [ { "key": "1-key", "value": "1-value" }, { "key": "2-key", "value": "2-value", "option": "2-opt" } ], "baz": [ { "key": "3-key", "value": "3-value", "option": "3-opt" }, { "key": "4-key", "value": "4-value" } ] } } 配列の皮むきとオブジェクトの皮むき 初級編では「配列の展開」として.[]という記述を解説しました。 $ cat example.json | jq '.foo.bar' [ { "

    jqを活用してAPIレスポンス等から欲しい情報だけを抽出する【中級編】 | DevelopersIO
    amari3
    amari3 2021/03/24
  • JSONデータ圧縮方式をSnappyからzstdに切り替えた事例紹介 | BLOG - DeNA Engineering

    JSONデータ圧縮方式をzstdに切り替えデータ量を38.3%削減した事例、及びマイクロサービスの無停止アップデート事例について紹介したいと思います。 はじめに JPRゲーム事業部開発基盤部の池田周平です。先日 Rails5対応についてDeNA techブログに投稿 した@namusyakaと同じチームで働いています。 JSON文字列をRDBに格納する際の圧縮フォーマットをSnappyからzstdに切り替え、データ量を削減した事例を紹介したいと思います。対応を実施した目的はDB負荷対策です。DBで扱うデータをより小さくすることで、DBサーバのDiskI/O負荷とMaster-Slave間のレプリケーション遅延対策を目的としています。 「Sakasho」は、DeNAが持つモバイルゲームのためのプラットフォームです。複数タイトルのゲームを取り扱っており、一部データはゲーム毎の仕様差を吸収し

    JSONデータ圧縮方式をSnappyからzstdに切り替えた事例紹介 | BLOG - DeNA Engineering
  • MySQL Workbenchを使うとJSON型の編集が楽になる

    中国地方DB勉強会 in 米子で梶山さんがデモでJSON型のcolumnを簡単に編集してたのでその話。 MySQL Workbenchを使うとJSON型のデータをパースして綺麗に表示するViewerがついてくる。マジ便利。 #ChugokuDB — そーだい@初代ALF (@soudai1025) 2016年6月4日 つまりはこの事。 超便利なので皆にも知って欲しいのでまとめます! 1 事前準備 まずJSON型を使うためにMySQL 5.7を用意します。 そして次にMySQL Workbenchをインストールします。 既にMySQL Workbenchを使ってる人への注意点として6.3.5以降を使ってください。 そしてデフォルトの対象が5.6になってるので5.7に変更します。 あとはtableを作ってデータを登録します。 今回は下記のようなtableを作ってます。 CREATE TABLE

    MySQL Workbenchを使うとJSON型の編集が楽になる
  • MySQL 5.7のJSON機能を試してみる(MySQL Server Blogより) | Yakst

    MySQL 5.7から使えるようになったJSON機能の利用例に関するMySQL Server Blogのブログ記事を紹介します。 免責事項 この記事はMorgan Tocker氏によるMySQL Server Blogの投稿「Taking the new MySQL 5.7 JSON features for a test drive」(2016/3/2)をユーザが翻訳したものであり、Oracle公式の文書ではありません。 MySQL 5.7からネイティブのJSON型と、サーバーサイドでデータを操作や検索を自然に行えるようにする一連のSQL関数が使えるようになりました。日、SF OpenDataにあるサンプルデータを使って、これらの機能の簡単な利用例をご紹介したいと思います。 サンプルデータをインポートする 良いサンプルデータを使うことは、結果が正確であることを自身で確認するのに役立つた

    MySQL 5.7のJSON機能を試してみる(MySQL Server Blogより) | Yakst
  • 僕が考えた最強のAPIドキュメント生成 - 銀の人のメモ帳

    2023 追記 2023 年現在では、以下の文章では採用を見送っている OpenAPI を使えば OK という雰囲気です。 Web APIの設計 作者:Arnaud Lauret翔泳社Amazon TL; DR ドキュメント生成にはkevinrenskers/raml2htmlを使った ドキュメントはRAML - RESTful API modeling languageで書いた RAMLにはJSON SchemaとJSONを記載できる APIで返ってくるJSONはRailsアプリのrequest specでJSON Schemaを使ってテストした JSON Schemaはr7kamura/json_worldで生成した ドキュメントに載せる例示のJSONもJSON Schemaからgin0606/screijiを使って生成した 上記の方法だとリクエストパラメタとドキュメントの整合性を担保

    僕が考えた最強のAPIドキュメント生成 - 銀の人のメモ帳
  • Google JSON Style Guide

    Google JSON Style Guide
  • Qiita API v2のJSON Schemaを公開しました - Qiita Blog

    こんにちは、r7kamura です。 最近は主にイカとして活動しており、カラフルな墨を掛け合う日々を送っています。 さて、QiitaおよびQiita Teamでは、Qiita API v2としてデータを操作するためのREST APIを公開しています。これまで開発者向けに APIドキュメント を提供していましたが、今回は主に機械向けのインターフェースとして、JSON Schemaで記述したREST APIのスキーマ定義 (以下スキーマ) を公開することになりました。具体的には、JSON Hyper-Schema draft v4 を利用して定義されています。 http://qiita.com/api/v2/schema Qiita API v2のスキーマの説明Qiita API v2のスキーマの構成について簡単に説明します。スキーマは http://qiita.com/api/v2/sche

  • PHPのJSON HashDosに関する注意喚起

    4年前にHashDos(Hash Collision Attack)に関する効率的な攻撃方法が28C3にて公開され、PHPを含む主要言語がこの攻撃の影響を受けるため対策を実施しました。しかし、PHP以外の言語が、ハッシュが衝突するデータを予測困難にする対策をとったのに対して、PHPは、GET/POST/COOKIE等の入力データの個数を制限するという対症療法を実施したため、PHPにはHashDosに対する攻撃経路がまだ残っているということは、一部の技術者には知られていました。例えば、以下の様なつぶやきにも見ることができます。 だって、 hashdos 脆弱性の時、 Python とかの言語が、外部入力をハッシュに入れるときに衝突を狙えないように対策したのに、phpだけPOST処理で対策したからね? json を受け取るような口もってるphpアプリのほとんどがhashdos残ってるんじゃない

  • CakePHP 2: JSON をレスポンスとして返す

    CakePHP 2: Hello WorldCakePHP 2: JSON をレスポンスとして返すCakePHP 2: GET、POST リクエストを扱うCakePHP 2: Cookie とセッションを扱うCakePHP 2: FormHelper を使うCakePHP 2: データベースにアクセスするCakePHP 2: テーブルを使わないモデルCakePHP 2: Basic 認証 viewClass プロパティに ‘json’ を指定する。 class HelloController extends AppController { public function index() { $ret = array('foo' => 'bar'); $this->viewClass = 'json'; $this->set(compact('ret')); $this->set('_ser

    CakePHP 2: JSON をレスポンスとして返す
  • [CakePHP2] json形式のデータを手軽に出力する

    Working with hugedomains.com was a quick and easy process. We got to speak to multiple real people located in Colorado without having to wait on hold! Our only complaint was we felt we had to overpay more than this particular domain was worth, and we weren't able to negotiate it down to a level that we felt was fair. However, payment and delivery were seamless, and within a few hours we had all of

    [CakePHP2] json形式のデータを手軽に出力する
  • CakePHPでjson/jsonpなAPIをサクッと作る - Qiita

    // hoge.json なURLを有効にする Router::parseExtensions('json'); <?php App::uses('AppController', 'Controller'); class ApiController extends AppController { public $uses = array('Post'); // RequestHandlerコンポーネントを使用 public $components = array('RequestHandler'); public function search() { $this->set(array('Posts'), $this->Post->find('all')); $this->set(array( '_serialize' => array('Posts'), '_jsonp' => true

    CakePHPでjson/jsonpなAPIをサクッと作る - Qiita
  • APIドキュメントを支える技術 - Qiita

    最近のウェブ開発では各機能ごとをAPIでつなぎ込む時代になっています。 そのため、各チームが開発をしていく上で、 他のチームにAPIの仕様を伝える方法をきちんとまとめておく必要が出てきています。 そんな中でAPIドキュメントにどのような役割が求められていて どのような選択肢があるか、一旦自分の把握している知識をまとめています。 (ここで書いているAPIは、httpでアクセスしたら、JSON形式でレスポンスを返すウェブサービスのAPIを指しています) APIドキュメントを用意する上で、すぐにぶつかる壁 APIドキュメントを用意する場合に、何も考えずにExcelやwikiにまとめると、早い段階で メンテナンスのコスト の問題にぶつかります。 『APIドキュメントを書く時間がない』 『当にドキュメント通りの結果が返ってくるか、試してみないとわからない』 『実際に返ってくるAPIとレスポンスが違

    APIドキュメントを支える技術 - Qiita
  • JSON SchemaとPHP

    6. JSON Schema • JSONの構造をバリデーションするための仕様 • http://json-schema.org/ • http://json-schema.org/latest/json-schemacore.html 9. JSON Schema { integer “id”: 12345, “name”: “Hiraku NAKANO”, “tags”: [“PHP”,”JavaScript”] } id, name, tags という プロパティを持った オブジェクト { string string[] “type”:”object”, “properties”: { “id”: {“type”:”integer”}, “name”: {“type”:”string”}, “tags”: { “type”:”array”, “items”:{“type”:”stri

    JSON SchemaとPHP
  • JSON Schema と API テスト YAPC::Asia Tokyo 2014

    YAPC::Asia Tokyo 2014 Talk https://www.youtube.com/watch?v=bxNMk6XP2JARead less

    JSON Schema と API テスト YAPC::Asia Tokyo 2014
  • 全てが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

    全てがJSONになる - ✘╹◡╹✘
  • YappoLogs: 2014年に向けた JSON API の実装の方向性と X-JSON-Status 改め X-API-Status header のご提案

    2014年に向けた JSON API の実装の方向性と X-JSON-Status 改め X-API-Status header のご提案 追記 2014/11/20 14:00:00 わりと JSON やら XML やら各種フォーマットで API を運用している環境がある場合に JSON API の時だけ X-JSON-Status にすると XML とかの時と整合性取れないし、 X-XML-Status みたいのを量産するのは困る的なレビューを頂いたので X-JSON-Status をやめて X-API-Status にしました。 へたに JSON に限定するから REST とか JSON-RPC とかいわれるんや! X-API-Status にしたら全部解決したし MessagePack な API でも使い回せるって songmu さん言ってた! XML とかからどうやって引っこ抜

  • 軽量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
    amari3
    amari3 2013/07/11
  • 機密情報を含む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コマンドが実は高性能すぎてビビッた話
    amari3
    amari3 2013/05/01
  • にひりずむ::しんぷる - JSONPath が便利でスクレイピングが捗る話

    JSONPath というのがあって、いわゆる XPath の JSON 版です。 仕様は以下 JSONPath - XPath for JSON XPath すべての機能が使えるわけではありませんが、巨大な JSON から目的の key を探す場合にはなかなか便利です。 たとえば、Dailymotion の JSON なんかはダンプすると 900行ぐらいあったりして、しかも超絶階層が深い。更にいうと配列が多くて、順番が変わる可能性も高い (というか実際に昔作ったスクリプトがうごかなくなっていた)。 そういう場合にサクッと指定してモリっと取ってきてくれると便利ですね。 例えば Dailymotion の動画のタイトルが欲しい場合は、JSONPath を使わないと以下のようになります。 my $title = $json->{sequence}[0]{layerList}[0]{sequenc