如何从看起来像“键”的json对象中提取值:[10,12,56]使用Java

时间:2018-10-20 14:00:58

标签: java android json

在Wordpress中,我使用的Api以一种奇怪的方式返回标签​​的ID,它以这种方式返回:

"tags":[50,51,54]

我从未见过任何看起来不像“ key”:“ value”的Json,而且我也不知道如何解析它... 希望您能提供帮助,谢谢!

更新: 糟糕的是,我发布的示例不是完整的json,看起来像这样:

{"categories":[2,8],"tags":[50,51,54]}

2 个答案:

答案 0 :(得分:0)

您可以为此json字符串创建一个类,并仅用一行代码来解析json,如main方法中所示。

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());
    }
}

您需要为此提供gson库并进行导入,

import com.google.gson.Gson;

希望这对您有用。

答案 1 :(得分:0)

[]表示标签存储为数组。您可以使用JSONObject.getJSONArray()作为JSONArray对象来访问数组,然后使用.getInt()来检索值。例如:

    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);
    }