No.2ベストアンサー
- 回答日時:
その場合だと
a: 抜き出したいデータへ辿り着くため、予め用意したキーワード
b; JSON形式から得たデータ
ということですよね?
だとすると
○ '[hoge][hoge2][key1]', 等と一つの文字列で持たせようとすると、分割する必要がでてきます。
予め決まっているのだから ('hoge','hoge2','key1') と、タプル(または[]でリスト)で持っていれば、分割する必要が無くなります。
○ b の深さが変化するのなら、
b[k[0]][k[1]][k[2]]
等とまとめてやろうとはせずに
b0 = b[k[0]]
b1 = b0[k[1]]
b2 = b1[k[2]]
...
などと、キーの数で辿る数を変えればできます。
ループや再帰を使えば、どんな個数でも対応できます。
No.1
- 回答日時:
今の状態では
a['key1'] で 文字列 '[hoge][hoge2][key1]' を得る
↓
正規表現等の文字列操作を使って 'hoge','hoge2','key1' の3つの文字列を得る
例) k=('hoge','hoge2','key1') の状態にする
↓
得られ文字列を使って b['hoge']['hoge2']['key1']を得る
上記例だと b[k[0]][k[1]][k[2]]
※ 毎回書くのが面倒なので、適当な関数にする
くらいではないでしょうか。
データ構造自体の見直しも考えた方がよいでしょう。
evalという方法もありますが、危険なのでお勧めしません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript Json のキーと値の出力の違いについて 2 2022/06/14 20:22
- CPU・メモリ・マザーボード USB Key 2 2022/07/06 14:25
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- Visual Basic(VBA) ExcelVBAで、index、match関数を使用して、指定範囲に出力したい 3 2022/10/18 21:53
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- JavaScript java keyを配列で表記したい 10 2022/12/01 17:53
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- マウス・キーボード PCで大文字と小文字が逆になりました。 3 2023/06/17 11:00
- JavaScript SQLでデータベースから返ったデータのJSON形式生成について 1 2022/04/06 12:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPでこのコード自体に意味は無...
-
PHPで連想配列のプルダウンメニ...
-
連想配列のキー値(連番)を基...
-
PHPの構文で間違えが分からない
-
foreachで上限回数指定方法また...
-
新大阪・梅田周辺でチェックア...
-
foreachとかの勝手な省略?
-
プログラミングのPythonのnoteb...
-
PHPのカッコ[ ]の使い方について
-
スカラーのベクトル微分
-
ヒアドキュメントの中のfor文
-
複数行のデータのPOST処理に関して
-
エラーメッセージ(無効な間接...
-
fgetsで取り込んだ文字をexplod...
-
forとかで連番の変数を一気に格...
-
foreachのなかで次のキーを参照...
-
String だと「 ByRef引数の型が...
-
fgetcsvでデータが何も表示され...
-
PHPで配列をPOSTデータで送った...
-
配列を回すとき、最後の要素だ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マッチング処理(1:N)
-
smartyのforeachの使い方
-
foreachで上限回数指定方法また...
-
多次元配列を、1次元の配列にす...
-
foreachの間にテーブルの<TR>を...
-
PHP、{}記号の意味
-
$_POST受信で必要項目のみを結...
-
3つの連想配列を交互に代入し...
-
VB.NET で 二次元のハッシュは...
-
PHP:ツリー構造をulとli要素に...
-
foreachで配列を、左から縦3列...
-
PHPの構文で間違えが分からない
-
PHPで連想配列のプルダウンメニ...
-
添え字が全て文字列のPHPの多次...
-
POSTで渡されるデータの数がわ...
-
テーブルデータ表示
-
Smartyでインクリメント
-
PHPで変数名にハイフンを使うに...
-
Delphi XEの警告文を消したい
-
配列から順位を算出したい
おすすめ情報
ご回答ありがとうございます。なるほど、結構面倒なんですね。
いまやろうとしてることは、為替レートが取れる複数のサイトからurllibで
JSON形式で為替データを取ってきてUSDJPYの値を抜き出したいと思っています。
例えば以下2つのサイトです。
# yahoo
https://query.yahooapis.com/v1/public/yql?q=sele …
と
[続く]
[続き]
# fixer
http://api.fixer.io/latest?symbols=USD,JPY
この場合、yahooの場合は、['query']['results']['rate']['Rate']になりますし、
fixerは['rates']['JPY']で取り出せます。調査対象のサイトが10個程度あったので、
それぞれアクセス出来るキーワードを予め用意しておけばいいと考えました。
普通こういったケースではどのように処理するのでしょうか。