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

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

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

You are not logged in.

Announcement

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


#1 2020-06-22 17:46:49

しろ92
Member

JSONGetElementについて

いつもお世話になっております。
下記のJSONデータからJSONGetElement を使用して"special_price" の”10002"の"unit_price"を抽出したいのですが、"10002"の値が変動するため、要素番号[1]で抽出したいのですが、なかなかうまくいかず困っております。

JSONGetElement ( $JSON ; "product.special_price.10002.unit_price" ) では抽出できます。

JSONGetElement ( $JSON ; "product.special_price[1]unit_price" ) このような感じで抽出はできないでしょうか。

また"special_price"の"10002"の個所をリスト形式で"10000,10004改行10002"のように抽出できないでしょうか。
抽出前に最新のJSONデータを取得して、リスト形式を抽出できると、GetValueを使用して目的のデータを抽出できると思うのですが。

JSONデータ:$JSON
内容
{"products":
   [
                      {

            "special_price" :
            {
                "10000,10004" :  ←この値は変動します。
                {
                    "unit_price" : 1100,
                    "volume_discount" : null
                },
                "10002" :     ←この値は変動します。
                {
                    "unit_price" : 1100,
                    "volume_discount" : null
                }
            }
    ]
}

使用環境
windows 10
filemaker pro17

分かりづらくて申し訳ありませんが、よろしくお願いします。

Offline

#2 2020-06-22 23:09:58

Hiro
Member

Re: JSONGetElementについて

いつもお世話になっております。
下記のJSONデータからJSONGetElement を使用して"special_price" の”10002"の"unit_price"を抽出したいのですが、"10002"の値が変動するため、要素番号[1]で抽出したいのですが、なかなかうまくいかず困っております。
・JSONGetElement ( $JSON ; "product.special_price.10002.unit_price" ) では抽出できます。
・JSONGetElement ( $JSON ; "product.special_price[1]unit_price" ) このような感じで抽出はできないでしょうか。

「ハッシュ」と「配列」は違います。「ハッシュ」構文に「配列」関数は当然無効ですよ。


また"special_price"の"10002"の個所をリスト形式で"10000,10004改行10002"のように抽出できないでしょうか。

JSONListKeys関数で一発です。
   JSONListKeys ($JSON ; "products[0].special_price")   →   "10000,10004" &¶& "10002"


JSONデータ:$JSON
内容
{"products":
   [
                      {

            "special_price" :
            {
                "10000,10004" :  ←この値は変動します。
                {
                    "unit_price" : 1100,
                    "volume_discount" : null
                },
                "10002" :     ←この値は変動します。
                {
                    "unit_price" : 1100,
                    "volume_discount" : null
                }
            }
    ]
}

タイポがあり、構文エラーとなります。
正しくは、

{"products":
   [
       {
            "special_price" : 
            {
                "10000,10004" : 
                {
                    "unit_price" : 1100,
                    "volume_discount" : null
                },
                "10002" : 
                {
                    "unit_price" : 1100,
                    "volume_discount" : null
                }
            }
        }
    ]
}

Offline

#3 2020-06-23 14:02:39

しろ92
Member

Re: JSONGetElementについて

Hiroさん、ご返信ありがとうございます。

教えていただいた方法でできました。
JSONについてもっと勉強したいと思います。
ありがとうございます。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 508.95 KiB (Peak: 515.83 KiB) ]