1
votes

Comment obtenir la liste des objets JSON à partir de la réponse, y compris un autre paramètre

Je continue d'apprendre la modernisation et je souhaite gérer la réponse du serveur.

Structure de la réponse du facteur

‹      í˝`I–%&/mĘ{JőJ×ŕtˇ€`$Ř�@ěÁ�Íć’ěiG#)«*�ĘeVe]f@Ě흼÷Ţ{ď˝÷Ţ{ď˝÷ş;ťN'÷ß˙?\fdlöÎJÚÉž!€ŞČ?~|?"~ńGÍz:ÍóY>űčŃyV6ů裼®«şůčŃ÷~ńGÓj–ô裧ëUYLł6˙ŞÉëŮ"˙hôŃ,o¦u±j‹jI-đEş¤oŇŹ_eçă´hҬ¬ólvť¶ŮŰ|9ţč—|˙—

code de POST

XXX

RegisterResponseModel

@SerializedName("errors")
@Expose

J'ai essayé d'utiliser List, ArrayList et juste String et evenn serialize:

    private String succeeded;
    private ArrayList<String> errors;


0 commentaires

3 Réponses :


0
votes

Ne traitez pas ce cas comme un cas de réussite. Si le backend vous renvoie une erreur, vous devez la gérer comme les erreurs. J'utilise un intercepteur personnalisé pour okHttp comme celui-ci

class ErrorInterceptor : Interceptor {

@Throws(IOException::class)
override fun intercept(chain: Interceptor.Chain): Response {
    val request = chain.request()
    val response = chain.proceed(request)
    if (<Check is repsonce fail>) {
        val body = response.body()
        body?.let(::parseBackendError) ?: throw IOException("Body is null")
    }
    return response
}

private fun parseBackendError(responseBody: ResponseBody) {
    <Parce your error list and throw exeption>
  }
}


0 commentaires

0
votes

Vous pouvez analyser ce json avec une erreur ArrayList;

public class Error {

private String code;
private String description;

public String getCode() {
    return code;
}

public void setCode(String code) {
    this.code = code;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

@Override
public String toString() {
    return "Error [code=" + code + ", description=" + description + "]";
}

classe publique RegisterResponseModel {

private boolean succeded;
private List<Error> errors;

public boolean isSucceded() {
    return succeded;
}

public void setSucceded(boolean succeded) {
    this.succeded = succeded;
}

public List<Error> getErrors() {
    return errors;
}

public void setErrors(List<Error> errors) {
    this.errors = errors;
}

@Override
public String toString() {
    return "TestDTO [succeded=" + succeded + ", errors=" + errors + "]";
}

}

import java.util.List;

}


0 commentaires

0
votes

Ajoutez ceci à votre méthode de publication @FormUrlEncoded


0 commentaires