<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Jsoncrush on akky@サイボウズラボ・ブログ</title>
		<link>https://labs.cybozu.co.jp/blog/akky/tags/jsoncrush/</link>
		<description>Recent content in Jsoncrush on akky@サイボウズラボ・ブログ</description>
		<generator>Hugo</generator>
		<language>ja</language>
		
		
		
		
			<lastBuildDate>Thu, 28 Nov 2019 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://labs.cybozu.co.jp/blog/akky/tags/jsoncrush/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>JSONCrush - JSONをURIに圧縮して載せるためのライブラリ</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/11/jsoncrush-json-compresses-json-into-uri/</link>
				<pubDate>Thu, 28 Nov 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/11/jsoncrush-json-compresses-json-into-uri/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/KilledByAPixel/JSONCrush&#34;&gt;KilledByAPixel/JSONCrush&lt;/a&gt; は、JSONをURLに載せやすい形に変換するライブラリです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://killedbyapixel.github.io/JSONCrush/&#34;&gt;JSONCrushのデモサイト&lt;/a&gt;。JSON形式のデータを左上に入力すると、それをテキストとして圧縮し(↓)、さらにURIとして使える文字に縁故度しています(→)。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2019/11/jsoncrush-json-compresses-json-into-uri/jsoncrush-demo-screenshot.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/11/jsoncrush-json-compresses-json-into-uri/jsoncrush-demo-screenshot_hu_a0e63217cdd56f7d.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/11/jsoncrush-json-compresses-json-into-uri/jsoncrush-demo-screenshot_hu_5d33c736709b3af6.webp 768w, https://labs.cybozu.co.jp/blog/akky/2019/11/jsoncrush-json-compresses-json-into-uri/jsoncrush-demo-screenshot_hu_96a9ff9c1e91c5eb.webp 1184w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/11/jsoncrush-json-compresses-json-into-uri/jsoncrush-demo-screenshot.png&#34; width=&#34;1184&#34; height=&#34;833&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;今回入れてみたJSONでは、そのままURIエンコードした場合に比べて52%、約半分のサイズとなりました。&lt;/p&gt;&#xA;&lt;p&gt;URLにユーザーが入力した結果のJSONデータをなるべく小さくして載せるというのがライブラリの目的です。URLに再現のためのパラメータが全部載っていれば、結果をブックマークしてもらえばいつでも同じパラメータのページが再現できます。サーバーサイドでいろいろ面倒な処理をして覚えておく必要がありません。&lt;/p&gt;&#xA;&lt;p&gt;そのままURLEncodeする手もあるけど、URLのサイズ上限(2000バイトちょっと)に引っ掛かるのは避けたい、と。HTTPパラメータとして個別に受け取ればもっとコンパクトにできるのでしょうけど、JSONのまま渡せるのは場合によっては楽なのでしょう。作り手側に楽という意味ですが。&lt;/p&gt;&#xA;&lt;p&gt;使ってる&lt;a href=&#34;http://jquerymy.com/jscrush/&#34;&gt;JSCrush ライブラリ&lt;/a&gt;が変換部分を担っていて、これは特定の文字列内でテキストをエンコードしてくれるもののようです。&lt;a href=&#34;http://www.iteral.com/jscrush/&#34;&gt;JSCrushのデモサイト&lt;/a&gt;はこちら。&lt;/p&gt;&#xA;&lt;p&gt;JSCrush は minify したものしかないらしく、 &lt;a href=&#34;https://nikhilism.com/post/2012/demystifying-jscrush/&#34;&gt;その動作を解析してる人&lt;/a&gt;がいました。この解説によれば、JSCrushライブラリは、1KbyteのJavaScriptで何ができるか、というコードゴルフコンテストの&lt;a href=&#34;http://js1k.com/2012-love/demo/1243&#34;&gt;2012年の作品&lt;/a&gt;で使われたものだそうです。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://news.ycombinator.com/item?id=21641760&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
