初心者のFileMaker pro Q&A

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。

何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

ログインしていません。

アナウンス


#1 2019-07-09 13:26:06

しろ92
メンバー

[解決] jsonデータからリスト抽出

いつもお世話になっております。
過去にこちらで下記の取得データから、必要なデータを抽出する方法を教えていただきました。
今回ですが、取得データからリスト関数のような下記データは抽出できないでしょうか。

取得データの全dealerProductCodeのみを抽出「A_1、A_2、B_1・・・D_1」

取得データ
{"body":
   {"productSets":
      {"productSet":
         [
         {"dealerProductCode":"A_1","stock":5},
         {"dealerProductCode":"A_2","stock":5},
         {"dealerProductCode":"B_1","stock":0},
         {"dealerProductCode":"B_2","stock":2},
         {"dealerProductCode":"B_3","stock":0},
         {"dealerProductCode":"C_1","stock":4},
         {"dealerProductCode":"C_2","stock":3},
         {"dealerProductCode":"D_1","stock":2}
         ]
      }
   }
}

使用環境:Windows 10
Filemaker pro 17


他のjson関数等使用して試したのですが、解決できませんでした。
良い方法がありましたら、教えていただけますでしょうか。
よろしくお願い致します。

オフライン

#2 2019-07-09 15:54:56

Hiro
メンバー

Re: [解決] jsonデータからリスト抽出

json配列内の串刺し検索する関数は無いので、FMのループ式で求める式例、
(※結果は、全dealerProductCode:値の一覧リストを返す)

Let([
   $jsn=JSONListValues( JSONデータ ; "body.productSets.productSet");
   $i=0;
   $res="";
   $FNC=
      "Case($i=ValueCount($jsn); $res;
         Let([
            $i=$i+1;
            #ary=GetValue($jsn; $i);
            #add=JSONGetElement(#ary; ""dealerProductCode"");
            $res=List($res; #add)
         ]; Evaluate($FNC))
      )"
];
   Evaluate($FNC)
)

編集者 Hiro (2019-07-09 18:17:10)

オフライン

#3 2019-07-10 12:35:43

しろ92
メンバー

Re: [解決] jsonデータからリスト抽出

Hiroさん、ありがとうございます。
できました。

オフライン

クィック投稿

メッセージを書いて送信してください。
登録の確認

実在の人物による登録であることを確認します。

Board footer