[]
        
(Showing Draft Content)

FILTERJSON

JSON文字列からデータを解析します。

書式

FILTERJSON( json_string )

引数

有効な引数は次のとおりです。

引数

説明

json_string

[必須] 有効な形式のJSON文字列データ

解説

JSON文字列には無効な形式がある場合、#VALUE!エラーが返されます。次の表は、いくつかの例とその期待する結果を表示します。

JSON文字列

数式

結果

{"a": 123}

FILTERJSON("{""a"": 123}")

[object Object]

"123"

FILTERJSON("123")

123

[1,2, "string"]

FILTERJSON([1,2,"string"])

#VALUE!

{a: 123}

FILTERJSON("{a: 123}")

#VALUE!

'[1, "string", {"a": 123}]'

FILTERJSON("[1, ""string"", {""a"": 123}]")

1 | string | [object Object]

データ型

文字列型のデータを受け取ります。スカラー値、オブジェクト、またはオブジェクトの配列を返します。

使用例

JSON文字列からデータを解析できます。

var json_string = `{
    "store": {
        "book": [
            {
                "category": "reference",
                "author": "Nigel Rees",
                "title": "Sayings of the Century",
                "price": 8.95
            },
            {
                "category": "fiction",
                "author": "Evelyn Waugh",
                "title": "Sword of Honour",
                "price": 12.99
            },
            {
                "category": "fiction",
                "author": "Herman Melville",
                "title": "Moby Dick",
                "isbn": "0-553-21311-3",
                "price": 8.99
            },
            {
                "category": "fiction",
                "author": "J. R. R. Tolkien",
                "title": "The Lord of the Rings",
                "isbn": "0-395-19395-8",
                "price": 22.99
            }
        ],
        "bicycle": {
            "color": "red",
            "price": 19.95
        }
    },
    "expensive": 10
}`;
sheet.setValue(4,0,json_string);
sheet.setFormula(5,0,'=FILTERJSON(A5)');
sheet.setFormula(6,0,'=PROPERTY(A6,"store.book.0.title")'); // "Sayings of the Century"

JSONデータを含むURLを解析するには、FILTERJSON関数をWEBSERVICE関数をネストして使用できます。解析されたデータをPROPERTY関数を使用して表示できます。

sheet.setFormula(0,0,'=FILTERJSON(WEBSERVICE("https://cors-demo.glitch.me/allow-cors"))'); // WEBSERVICEはjsonデータを取得します。
sheet.setFormula(1,0,'=PROPERTY(A1,"message")'); 

spread.options.allowDynamicArray = true; // dynamicArrayを許可します。
sheet.setFormula(2,0,'=FILTERJSON(WEBSERVICE("https://restcountries.eu/rest/v2/name/Japan"))'); // WEBSERVICEはjsonデータを取得します。
sheet.setFormula(3,0,'=PROPERTY(A3,"name")'); // "日本"