Comment Poster tableau JSON à l'aide de Rénovation 2
J'ai besoin de mettre un objet JSON à l'aide de Rénovation 2. Mon objet JSON est
{
"logTime" : "",
"datas" : [
{
"dat1": "1",
"dat2": "",
"dat3": "",
"dat4": "",
"dat5": ""
},
{
"dat1": "1",
"dat2": "",
"dat3": "",
"dat4": "",
"dat5": ""
}
]}
J'ai essayé d'utiliser le code suivant:
API de Services
@FormUrlEncoded
@Headers({
"Content-Type: application/json",
"x-access-token: eyJhbGciOiJIU"
})
@POST("/api/employee/checkin")
Call<String> CHECKIN(@Body String data);
Classe D'Activité
JSONStringer jsonStringer = null;
try {
jsonStringer=new JSONStringer().object().key("logTime").value("")
.key("datas")
.array()
.object().key("dat1").value("1")
.key("dat2").value("3")
.key("dat3").value("5")
.key("dat4").value("5")
.endObject()
.endArray()
.endObject();
} catch (JSONException e) {
e.printStackTrace();
}
ApiService service = retroClient.getApiService();
Call<String> login = service.CHECKIN(String.valueOf(jsonStringer));
login.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
dialog.dismiss();
try {
String val = response.body();
} catch (Exception e) {
e.getMessage();
}
}
@Override
public void onFailure(Call<String> call, Throwable t) {
}
});
J'ai eu "Erreur: Pas de Rénovation annotation trouvé. (paramètre #2)", tandis que l'utilisation de ce code. S'il vous plaît aider moi. Merci à l'avance.
- Où obtenez-vous cette erreur? Qui ligne?
- Supprimer l'en-tête et essayez de nouveau
- Erreur se produit dans ApiService.CHECKIN
- Même erreur se produit
- Comment passer au-dessous d'objet JSON à l'aide de la carte du Champ? { "logTime" : "", "datas" : [ { "dat1": "1", "dat2": "", "dat3": "", "dat4": "", "dat5": "" }, { "dat1": "1", "dat2": "", "dat3": "", "dat4": "", "dat5": "" } ]}
Vous devez vous connecter pour publier un commentaire.
Essayer ce code
Api De Services
API Client
Activité
utilisation GSON lib
ajouter cette dépendance dans la construction.gradle
API de Services
Classe D'Activité
Lors de l'utilisation de la
@FormUrlEncoded
d'annotation, de passer des paramètres à l'aide de la@Field
param au lieu de@Body
. Donc cela:J'ai supposé que votre serveur s'attend à un
data
clé qui permettra d'avoir les détails. Si c'est quelque chose d'autre, merci de le changer ici@Field("data")
EDIT:
Sur la base des commentaires:
@Field
paramètre. Deuxièmement, l'annotation a également mentionné est également@FormUrlEncoded
et pas@Multipart
. Êtes-vous sûr que vous avez exactement le même code dans votre application?@FormUrlEncoded
. Demandez le backend de l'équipe, où en seraient-ils être à la recherche pour les données. Si ils sont à la recherche dans le@Body
ensuite, vous devez créer votre propre objet personnalisé et ajouter GSON sérialiseur pour votre Rénovation de l'objet.logTime
etdatas
?Avez-vous ajouté une Rénovation de construire.gradle ?