それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

JSON vs XML。サブセットを考えるとXMLのほうが扱いやすい

JSON 便利ですけど、

JSONって便利なんですけど、JSONの一部を切り出してもJSONにならないんですよね。

とくに関数を抜いたデータだけと考えると、JSONって便利なのかなぁって思うようになった。

{
 "user" : [
  { "name" : "takuya", "age" : "19" },
  { "name" : "mirai"  , "age" : "17" },
  { "name" : "tsurai" , "age" : "39" }
]
}

ここから、適当に切り出したら、

[
  { name: "takuya", age: "19" }, // このカンマ邪魔!
]

なので、JSONを手作業で編集や String#+ で作るのは結構面倒だったりする。

結局JSONパッケージに頼ることになる。

XML は何処を切り出してもXML

本当に金太郎飴になるのはXMLなのです。

<?xml encoding='utf-8' ?>
<user>
<name>takuya</name><age>19</age>
<name>mirai</name><age>17</age>
<name>tsurai</name><age>39</age>
<name>mari</name><age>14</age>
</user>

ダブルクオーテーションとかいらないし、この方が圧倒的に書くのが楽。

ここから切り出しても

<name>mari</name><age>14</age>

切り出した単体もチャントXMLとして認識できる。

XMLってやっぱり便利じゃん。面倒なのはパースだけど、各言語にlibxml や xpath コマンドが枯れててずっと使いやすい

ただし、XMLには属性値という書き方もあって安定しないんだけど。

<user name="takuya" age="19" />

このへんはまだ許せる

<user age="19" ><name>takuya</name></user>

こういうのされるともう激おこするしかない。

いくら気をつけても、編集やシステム間のデータ移動を繰り返していると、こういうデータが出てきてしまう。ここさえなんとかなればなぁ。

手作業で編集させるならXML

JSONでも、シンタックスエラーや、 ダブルクオーテーション、カンマ、セミコロンなどの、閉じブラケット、カーリーブレイスのゴチャゴチャを考えるなら、もうJSONしんどいってなる。

JSON手作業やStringの++で作るのはもうシンドい。

属性とノードのアレコレはあるけどXMLは安定してる・・・

編集性能考えたら圧倒的にXML だと思います。

シンタックスエラーもブラウザにドロップするだけ。JSONだとコンソールあけて・・・

XMLXpath意外と行ける。

XMLってXpathでデータ持てるから、手作業でデータ修正もミスが少ない。

特定のデータ探すのにもXpathを使えばいい。

過去にもXpathに結構ハマってて。色々やってる。

document.evaluate でXPATH する具体的サンプル - それマグで!

データ交換ならやっぱりJSON

require 'json'
JSON.dump({})

これだけでJSONだけできるのはやっぱり魅力ですよねぇ

でも、もし手作業が少しでも含まれるなら、XMLって結構優秀だと思うんですよね。

いや、まぁ、世間には、アプリ側からMySQLへコネクション張って、直接SQLを叩いちゃう強者も要るようですから・・・・TLSしてるんだろうな・・・もちろん