来自Gson动态键的Getvalue

时间:2018-05-22 10:39:10

标签: android

我有一个注册Api,它有一个错误对象,它在数组中显示动态错误。

这是Api的JsonFormat:

    {
    "status_code": 422,
    "status": "error",
    "data": {
        "errors": {
            "password": [
                "The password must be between 8 and 15 characters."
            ],
            "mobile_no": [
                "The mobile number has already been taken."
            ]
        }
    }
}

如果用户忘记写名称,那么它将显示错误的用户名数组。所以它会动态变化。 我的问题是如何在gson中设置这种类型的错误。我正在使用改造来调用Api。 我在我的Data类中做了这个,但它显示了我的错误。

 @SerializedName("errors")
@Expose
JsonObject errorObject;

Iterator iterator=new Iterator() {
    @Override
    public boolean hasNext() {
        Iterator keys=errorObject.keys();
        if(keys.hasNext()){

        }
    }

    @Override
    public Object next() {
        return null;
    }
}

请帮助我如何使用gson获取错误。谢谢你

1 个答案:

答案 0 :(得分:1)

您可以使用Map来维护数据结构,如下所示:

Type type = new TypeToken<Map<String, String>>(){}.getType();
Map<String, String> myMap = gson.fromJson(yourErrorsArrayHere, type);

然后只使用myMap.get("your_error_key")来获取特定错误。