Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

Praca z plikami JSON

Ładowanie danych z plików JSON w Qlik Cloud.

Dane z plików JSON można odczytywać tak jak z każdego innego pliku danych obsługiwanego przez Qlik Cloud. Więcej informacji można znaleźć w temacie Ładowanie danych z plików.

Można także załadować dane z pliku JSON w skrypcie ładowania danych za pomocą polecenia LOAD. Na przykład:

LOAD * from [lib://DataFiles/xyz.json] (json);

Więcej informacji zawiera temat Load.

Instrukcje LOAD mogą filtrować lub zmieniać kolejność pól, wymieniając żądane na liście pól zamiast używać symboli wieloznacznych. Na przykład: LOAD a.b, b.c FROM […] (json);. Nieistniejące pola nie spowodują błędu.

Ładowanie zagnieżdżonych obiektów z JSON

Jeśli wartość jest obiektem, wówczas członkowie tego obiektu są używani do rozszerzenia tabeli o dodatkowe pola. Każda nazwa pola jest kombinacją elementu nadrzędnego i podrzędnego. Na przykład JSON poniżej zawiera zagnieżdżone obiekty:


[
	{"name":{"first":"Alice","last":"Stephenson"}},
	{"name":{"first":"Bob"}},
	{"name":{"last":"Roberts"}}
]

Po załadowaniu przy użyciu LOAD * FROM [lib://DataFiles/example.json] (json); wynikiem jest poniższa tabela danych:

Przykład zagnieżdżonej tabeli danych
name.first name.last
Alice Stephenson
Bob null
null Roberts

Ładowanie wielu tabel

Dane JSON z tablicami muszą być ładowane przy użyciu wielu instrukcji LOAD. Zawartość tablicy jest hashowana i używana jako klucz do łączenia tabel.

Na przykład JSON poniżej zawiera wiele tabel.


[
	{"a":[1,2],"b":[3,4]},
	{"a":[2,3],"b":[4,5]}
]

Wymagałoby to załadowania za pomocą następującej instrukcji LOAD:

LOAD * FROM [...] (json); LOAD * FROM [...] (json, table is [/*/a]); LOAD * FROM [...] (json, table is [/*/b]);

Określnik table is jest ścieżką do iteratora dla tabeli podrzędnej. Wynikiem tego są poniższe tabele danych:

Tabela 1
%Key_a %Key_b
<hash z [1,2]> <hash z [3,5]>
<hash z [2,3]> <hash z [4,5]>
Tabela 2
%Key_a a..@1
<hash z [1,2]> 1
<hash z [1,2]> 2
<hash z [2,3]> 2
<hash z [2,3]> 3
Tabela 3
%Key_b b..@1
<hash z [3,5]> 3
<hash z [3,5]> 4
<hash z [4,5]> 4
<hash z [4,5]> 5
Informacja

Jeśli dane zawierają wiele tablic o identycznej zawartości, należy użyć słowa kluczowego DISTINCT w instrukcjach ładowania tabeli podrzędnej. Na przykład: LOAD DISTINCT * FROM [lib://DataFiles/Sales.json] (json, all tables);

Zaglądanie do tablic

Listy pól można używać podczas ładowania danych, aby zaglądać do tablic, które w przeciwnym razie zostałyby załadowane jako tabele podrzędne. Na przykład

[
	{"pos":[1,2,3]},
	{"pos":[4,5,6]}
]

To można załadować za pomocą następującej instrukcji LOAD:

LOAD pos.0 AS x, pos.1 AS y, pos.2 AS z FROM […] (json);.

Wynikiem tego jest następująca tabela.

x y z
1 2 3
4 5 6

Ładowanie wszystkich tabel

Możesz załadować wszystkie tabele, określając all tables zamiast Table is. Na przykład:

LOAD * FROM [lib://DataFiles/Sales.json] (json, all tables);

Ograniczenia

Pliki JSON mają następujące ograniczenia:

  • Pojedyncza instrukcja LOAD z JSON może ładować maksimum z poniższych: 

    • 5000 pól

    • 1000 tabel

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać, co możemy poprawić!