Kotlin : serializacja json stringu do Listy

Odpowiedz Nowy wątek
2018-11-02 12:21
0

Poproszę o przykład, link ... dopiero zacząłem przygodę z Kotlinem i Androidem i nie mogę znaleźć przykładu serializacji stringa do Listy w Kotlinie. Wszystkie przykłady oparte są na obiektach z nazwami pól nie mogę znaleźć przykładu z polem Array<anytype>
przykład :

{
    "database": [
    [277,277,"2018-11-01",11,12,18],
    [276,276,"2018-11-01",2,11,17],
    [275,275,"2018-10-31",5,11,16]
    ]
}

jak w Kotlinie zrobić listę jak dla przykładu zrobić to mozna w PHP? :

<?php
$js =<<<EXAMPLE
{
    "database": [
    [277,277,"2018-11-01",11,12,18],
    [276,276,"2018-11-01",2,11,17],
    [275,275,"2018-10-31",5,11,16]
    ]
}
EXAMPLE;
echo print_r(json_decode($js,true),true);

i wynik z PHP :

Array
(
    [database] => Array
        (
            [0] => Array
                (
                    [0] => 277
                    [1] => 277
                    [2] => 2018-11-01
                    [3] => 11
                    [4] => 12
                    [5] => 18
                )

            [1] => Array
                (
                    [0] => 276
                    [1] => 276
                    [2] => 2018-11-01
                    [3] => 2
                    [4] => 11
                    [5] => 17
                )

            [2] => Array
                (
                    [0] => 275
                    [1] => 275
                    [2] => 2018-10-31
                    [3] => 5
                    [4] => 11
                    [5] => 16
                )

        )

)
edytowany 1x, ostatnio: andrzej.kmicic, 2018-11-02 12:23

Pozostało 580 znaków

2018-11-02 12:36
0

Przecież w przykładzie masz listę list. Wewnętrzne listy nawet nie są jednolite, bo mieszają String i Int, czyli w najlepszym przypadku masz taką klasę.

class JakasClasa(val database: List<List<Any>>)

Jakby się uprzeć, to mógłbyś mieć String w miejscu Any, ale nie każda biblioteka na to pozwoli. Do deserializacji możesz skorzystać z czegokolwiek w zasadzie - Moshi, Jackson, GSON - popatrz na stronach tych bibliotek. Osobiście polecam Moshi, jeżeli tylko Android jest Ci potrzebny. Na Kotlina jest jeszcze "natywne" wbudowane wsparcie - https://github.com/Kotlin/kotlinx.serialization.

edytowany 3x, ostatnio: Michał Sikora, 2018-11-02 12:38

Pozostało 580 znaków

2018-11-02 13:00
0

Chciałoby się powiedzieć niezwyklem kontent i stokrotne dzięki waćpan Michale... :). Nie omieszkam spróbować ...

Rozwiązanie przyniósł przypadek, do pobrania danych REST użyłem biblioteki khttp i w niej znalazłem serializację JSON do tablicy JSONArray:

var resp: Response  = get(urlN)
            var data: JSONArray = resp.jsonObject.getJSONArray("Data") // .getString("Data")
            println(data.get(0))
            println(data.length())
            println(data.getJSONArray(0).length())
edytowany 4x, ostatnio: andrzej.kmicic, 2018-11-05 09:19

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0