Como puxar valores de um objeto JSON que se parece com "chave": [10,12,56] com Java

votos
-2

No WordPress uma API eu uso retorna ids dos etiquetas de uma forma estranha, ele retorna neste maneiras:

tags:[50,51,54]

Eu nunca vi qualquer JSON que não se parece com chave: valor, e não tenho idéia de como analisá-lo ... Eu espero que você pode ajudar, obrigado!

Update: Meu ruim, o exemplo que eu postei não era um json cheia, parece que:

{categories:[2,8],tags:[50,51,54]}
Publicado 20/10/2018 em 14:00
fonte usuário
Em outras línguas...                            


2 respostas

votos
0

O [] indicam que as tags são armazenados como uma matriz. Você pode usar JSONObject.getJSONArray()para acessar a matriz como um objeto JSONArray, em seguida, usar .getInt()para recuperar os valores. Por exemplo:

    String jsonString = "{\"categories\":[2,8],\"tags\":[50,51,54]}";
    JSONObject jsonObject = new JSONObject(jsonString);
    JSONArray tagsArray = jsonObject.getJSONArray("tags");
    // Transfer JSONArray to an int[] array.
    int tags[] = new int[tagsArray.length()];
    for (int i=0; i<tagsArray.length(); i++) {
        tags[i] = tagsArray.getInt(i);
    }
Respondeu 20/10/2018 em 14:33
fonte usuário

votos
0

Você pode criar uma classe para essa string JSON e analisar o JSON com apenas uma linha de código como mostrado no método principal.

public class Example {

    private List<Integer> categories = null;
    private List<Integer> tags = null;

    public List<Integer> getCategories() {
        return categories;
    }

    public void setCategories(List<Integer> categories) {
        this.categories = categories;
    }

    public List<Integer> getTags() {
        return tags;
    }

    public void setTags(List<Integer> tags) {
        this.tags = tags;
    }

    public static void main(String[] args) {
        String str = "{\"categories\":[2,8],\"tags\":[50,51,54]}";
        Example example = new Gson().fromJson(str, Example.class);
        System.out.println(example.getCategories());
        System.out.println(example.getTags());
    }
}

Você precisa ter biblioteca Gson para isso e ter essa importação,

import com.google.gson.Gson;

Espero que funcione para voce.

Respondeu 20/10/2018 em 14:24
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more