whatsnew

自作ゲーム My Works (indie game)

コカトリスあたたかい

10秒アスレチック

きりかえスライドパズル アイちゃんver

珠音ちゃんと踊る迷路の山

きりかえスライドパズル珠音ちゃんver

ダブルピースキャッチコンテスト

異世界の保安官

熱湯!鍋奉行すん止め選手権

サラダにxxいれないで!

十倍返しの魔鏡(マジックミラー)

とりでの中のp.b.j.a.m

ドラゴン遺跡のディガー

Dangerous Space Transporter

マトリエックス MatoriEkkusu

にわとりFlyHigh!

おばけのこんにゃくピターン大作戦

CreatureSlotBattle~魔王の切り札~

跳ねる岩の洞窟 JumpingRockCave

ポテキャッチ PoteCatch

青汁ごくごく生放送

猫の日スロット222 NekoSlot222

豆まき陰陽師 MameMakiOnMyoJi

間違い探し プロ生ちゃんのトレジャーハント

DOT VIRUS SHOOTER ドットウイルスシューター

エレベータースロットガール ElevetorSlotGirl

パンプキンヘッドとお菓子の迷宮

タッチ!イカタコ Touch! Ika Tako

減量と時の部屋 Room of HimanTaurust

チョコゲット ChocolateGet

OpenTheBox~その箱を開けるとき~

ドローン1111

胡桃坂ハロウィンパーティ

コロッケ・オン・ザ・キャベツ

デスチェリー農場


轟け!爆音機!

Levitation Girl

割引狩 WaribikiHunter

お団子キャノン

団子大砲

くの一宅配便

CandyMaze

BLK2048

マッハこうもり

AdSenseBlogHead

2014年7月13日日曜日

JSON のオブジェクトを ID でリンクする(4)


gistb28ba8146f829f3f3254


JSON のオブジェクトを ID でリンクする(3) - SakuraCrowd’s blog の続きです。前回まではテストケースをクリアする実装までいけていたのですが、今回はテストケースを書いたまでで、それを満たす実装は勉強中です。


いつもどおり、仕様の説明は gist のコメントに書いてあります。


簡単に言うと、複数のオブジェクトが集まっている構造の中で一部だけを処理できるようにしました。


それだけならば、その一部のオブジェクトを引数にくわせりゃいいじゃんと思うんですが、 ID からデータに置換するには JSONPath の絶対パスを利用しています。


そのためルートが変わってしまうと ID からデータに置換できなくなってしまうのです。


 


JSONPath とか XPath とかパスもいろいろあるね(`・ω・´)


そんなかんなで jsonPath を使って処理を開始するノード要素を取得する処理を追加しました。


最初にはまったのはルートは "$" だから jsonPath.eval(target, "$") とすれば target の値が返されると思ったところでした。


実際は空の配列が返って来ます。


XPath の仕様などの説明を読んだところ、どうやらルートノードとルート要素というものは別物らしいです。


そして JSONPath でルート要素を表す場合は "$.*" とします。


これで target の値が取得できました。


 


eval だからって、えばる(eval)な!←いってみたかっただけです><


しかし、今度は ret = jsonPath.eval(target, "$.*") が ret == target ですが ret !== target になっています!


これでは、共通のオブジェクトへリンクする処理ではなく、同じ値を持つ別のオブジェクトへのリンクとなってしまいます。


どうすればいいのかなー。


現状はそんなところです。


 


0 件のコメント:

コメントを投稿