Otrzymałem odpowiedź JSON z retrofitu, że nie jestem pewien, jak sobie z tym poradzić, czy możesz mi z tym pomóc? Chcę go gdzieś przechowywać, ale myślę, że lista nie byłaby do tego dobra, więc może HashMap? Wygląda na to, że odpowiedź

{ 
    "object" : 
    { 
        "key1" : "value1", 
        "key2" : "value2"
    }
}

I tak dalej .. Czy możesz mi podpowiedzieć, jak mam to przechowywać? Naprawdę doceniłbym każdą pomoc.

2
user13142806 28 marzec 2020, 21:13

2 odpowiedzi

Najlepsza odpowiedź

Zakładając, że chcesz przeanalizować ciąg Json do formatu strukturalnego. Możesz użyć Jacksona, aby zmapować go na hashmap.

Możesz to zrobić w następujący sposób

import com.fasterxml.jackson.databind.ObjectMapper;

  public void foo() {
       String jsonString = " { \"object\" : { \"key1\" : \"value1\", \"key2\" : \"value2\" } } ";
        ObjectMapper mapper = new ObjectMapper();
        try {

            // convert JSON string to Map
            Map<String, String> map = mapper.readValue(jsonString, Map.class);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Możesz uzyskać Jensona z następujących zależności, jeśli używasz mavena

<dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.9.8</version>
    </dependency>

Możesz przeczytać więcej na stronie portalu głównego Jacksona

0
CodeTalker 28 marzec 2020, 18:35

HashMap to najlepszy sposób na jej przechowywanie, ponieważ daje dostęp do specjalnych metod (takich jak containsKey, containsValue i compute), których możesz użyć do interpretacji i manipulowania danymi.

Aby uniknąć konieczności pisania standardowego kodu, zalecamy skorzystanie z biblioteki do obsługi parsowania, takiej jak Jackson. Pomoże również, jeśli kiedykolwiek będziesz musiał napisać własne odpowiedzi JSON.

0
Shan S 28 marzec 2020, 18:26