J'utilise ci-dessous est le code que j'utilise: P> gson code> pour créer un objet Sugarecord code> d'une réponse JSON. L'API que j'utilise renvoie un champ appelé "ID", mais le type d'identifiant "est une chaîne, pas longue (le backend utilise Mongo). @SerializedName("id")
String nutrition_plan_id;
6 Réponses :
Je suis préoccupé par le même problème et la seule solution que j'ai trouvée était de renommer le nom d'identification de mon API. Du fait, essayez d'envoyer Nutrition_PLAN_ID au lieu de ID de votre API et cela ferait le travail. P>
Le seul problème est que j'utilise une API tiers, donc je ne peux donc pas changer l'ID.
Voici ma solution, mais ce ne sera pas le meilleur.
Je viens d'ignorer id code> dans mon alimentation p> ID code> n'est plus utilisé. P> P>
Remplacez la touche "ID" dans la chaîne pour être "nutrition_day_id". Vous pouvez utiliser l'identifiant JSON et l'ID SQL.
jsonObject.getJSONObject("nutrition_day").toString().replace("\"id\"","\"nutrition_day_id\"")
Cela m'a aidé à changer id code> nom sur moyen code> et ajouter annotation @expose code> à tous les champs qui doivent être sérialisés et ajouter une annotation < Code> @SerializedName code> au nouveau ID code>.
Je cherchais une solution à ce problème pendant un certain temps. Enfin, j'ai trouvé une solution à elle. Ajouter simplement Exemple (fonctionne bien pour moi sur le sucre " ): p> mais cela signifie que vous ne pouvez pas utiliser @Table code> Annotation à la classe souhaitée au lieu de l'étendre à partir de Sugarecord code> et ajoutez manuellement ID code> attribut. Vous pouvez l'exclure de la sérialisation de gson via transitoire code> mot-clé, ou / / et renommez-le, avec @SerializedName code> Annotation. .save (), .delete () code>, etc. Méthodes de cette classe. Au lieu de cela, vous devez utiliser les méthodes statiques de Sugarecord:
Sugarecord.Save (), Sugarecord.Delete () Code>, ... P> P>
Aucun gros changements n'a besoin d'être fait.
Utilisez simplement Énoncé transitoire strong> avant Ensuite, si vous avez et amusez-vous! P> P>
Pourquoi ne prenez-vous pas
ID long code> de votre modèle?essayé ça. Le type long de l'ID vient automatiquement de Sugarecord. J'essaie de l'écraser et de le changer à un type de chaîne