初心者のFileMaker pro Q&A (旧掲示板)

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

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


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

しろ92
Member

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

Offline

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

Hiro
Member

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)
)

Last edited by Hiro (2019-07-09 18:17:10)

Offline

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

しろ92
Member

Re: jsonデータからリスト抽出

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

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.004 seconds, 8 queries executed - Memory usage: 503.98 KiB (Peak: 508.52 KiB) ]