JsonParse - metoda obiektu Pm
Opis:
Odczyta tekst wejściowy w formacie
JSON oraz zwróci jego odpowiednik binarny w formie obiektów (
PmMap), tablic (
PmArray) oraz wartości podstawowych typów danych (
Integer,
String ...).
Składnia:
PmMap JsonParse(String sJson)
Parametry:
sJson | (String) Łańcuch tekstowy w formacie JSON. |
---|
Wartość zwrotna:
Metoda zwraca zawsze obiekt
PmMap, zawierający informacje o wykonanej transformacji.
Uwaga: Obiekt ten nie zawiera własne odczytane dane - te dane zawiera dopiero jego właściwość
Value.
Obiekt posiada następujące właściwości:
Value | Wczytane dane z tekstu wejściowego.
Wartość może być obiekt PmMap, obiekt PmArray lub wartość podstawowego typu danych. |
ErrorCode | Numer kodu błędu.
Wartość 0 oznacza, że łańcuch JSON został bezbłędnie wczytany.
Wartość 1 oznacza, że wystąpił błąd podczas wczytywania. |
ErrorIndex | Jeżeli wystąpił błąd podczas wczytywania łańcucha JSON, wtedy tutaj będzie indeks znaku, w którym wystąpił błąd.
Właściwość ta nie działa w Web panelach |
Notatka:
Obiekty zapisane w
JSON będą reprezentowane obiektami
PmMap, tablice zapisane w
JSON będą reprezentowane obiektami
PmArray oraz ostatnie wartości zapisane w
JSON będą reprezentowane wartości odpowiedniego typu danych (
Variant).
Do tych danych hierarchicznych w postaci obiektów jest w aplikacji PROMOTIC prosty dostęp jak z
JavaScript, tak z
VBScript.
Metoda ta działa również w
Makro wyrażenie $.expr oraz w zdarzeniu
onDraw obiektu
PmgCanvas.
Metoda ta działa także w
Web panelach.
Przykład1:
Niech zmienna
sJson zawiera łańcuch:
[10, 20, 30, 40].
W
mMap.Value będzie obiekt typu
PmArray.
Do zmiennej
vVal1 zostanie zapisana wartość pozycji tablicy pod indeksem
1 (wartość 20).
JavaScriptVBScriptWybierz oraz skopiuj do schowka
var mMap = Pm.JsonParse(sJson);
var oJson = mMap.Value;
var vVal1 = oJson.GetItem(1);
Dim mMap, oJson, vVal1
Set mMap = Pm.JsonParse(sJson)
Set oJson = mMap.Value
vVal1 = oJson.GetItem(1)
Przykład2:
Niech zmienna
sJson zawiera łańcuch:
{"position": {"x": 100, "y": 100}, "size": {"dx": 200, "dy": 100}}.
W
mMap.Value będzie obiekt typu
PmMap.
Do zmiennej
vValX zostanie zapisana wartość właściwości
x (wartość 100).
Do zmiennej
vValDx zostanie zapisana wartość właściwości
dy (wartość 200).
JavaScriptVBScriptWybierz oraz skopiuj do schowka
var mMap = Pm.JsonParse(sJson);
var oJson = mMap.Value;
var vValX = oJson.position.x;
var vValDx = oJson.size.dx;
Dim mMap, oJson, vValX, vValDx
Set mMap = Pm.JsonParse(sJson)
Set oJson = mMap.Value
vValX = oJson.position.x
vValDx = oJson.size.dx
Przykład3:
Niech zmienna
sJson zawiera łańcuch:
[{"x": 100, "y": 111}, {"x": 200, "y": 222}, {"x": 300, "y": 333}].
W
mMap.Value będzie obiekt typu
PmArray.
Do zmiennej
vValX zostanie zapisana wartość właściwości
x pozycji pod indeksem
1 (wartość 200).
Do zmiennej
vValY zostanie zapisana wartość właściwości
y pozycji pod indeksem
1 (wartość 222).
JavaScriptVBScriptWybierz oraz skopiuj do schowka
var mMap = Pm.JsonParse(sJson);
var oJson = mMap.Value;
var vValX = oJson.GetItem(1).x;
var vValY = oJson.GetItem(1).y;
Dim mMap, oJson, vValX, vValY
Set mMap = Pm.JsonParse(sJson)
Set oJson = mMap.Value
vValX = oJson.GetItem(1).x
vValY = oJson.GetItem(1).y
Historia:
Pm9.00.29: Usprawniono właściwości
ErrorCode oraz
ErrorIndex.
Pm9.00.28:
Usunięty błąd: Tekst wejściowy niepoprawnie generował tablicę 2-wymiarową.
Pm9.00.09: Korekta parsacji
JSON. Liczba jest teraz zapisywana zawsze jako R8 (wcześniej jako typ danych
Double lub typ danych
Integer)