2015-10-30 1 views
0

ya je sais que c'est le problème très habituel alors que la cartographie, mais mon problème est un peu différent entendre est le scénario quand ma réponse have the data il me donne JSON Response comme çaobjet JSON ne peut pas être converti en JSON Tableau

{ 
    "responseID": "110", 
    "resultSet": [ 
    { 
     "USERNAME": "Aninja", 
     "position": "Developer", 
     "salary": "60000" 
    } 
    ], 
    "isSuccessful": true, 
    "rtnCode": "0000" 
} 

et au-dessous est le même JSON responsewhen data is not found

{ 
    "responseID": "123", 
    "resultSet": {}, 
    "isSuccessful": true, 
    "rtnCode": " " 
} 

que je peux voir entendre lorsque la réponse ont des données result set ont JSON Array mais quand aucune donnée trouvée nous h ave JSON Object en tant que réponse

donc c'est la raison pour laquelle je reçois ce problème. donc ma question est que comment dois-je gérer ce problème Merci pour votre réponse

Edit: le principal problème est que je l'ai fait mon modèle comme list of JSON Object il fonctionne très bien quand il est le résultat mais il me donne l'erreur Can't convert JSON Object to JSON Arraywhen result is empty s s'il vous plaît me suggérer comment puis-je attraper J'utilise Jackson 2.2 j'ai également essayé @JsonInclude(Include.NON_EMPTY) et @JsonInclude(Include.NON_NULL)

+0

Vérifiez votre objet reposnse côté serveur, si le résultat est une liste ou non. – Qianyue

+0

Recevez-vous une réponse JSON du serveur? Si oui, alors il doit y avoir un problème côté serveur. il est possible qu'il y ait une conversion de XML en JSON au niveau du serveur. – Shivam

+0

mais je dois gérer cela par moi-même je ne peux pas dire au programmeur côté serveur – ANinJa

Répondre

0

Je ne dirais pas qu'il est une erreur du serveur ou du back-end. Mais il est toujours recommandé de fournir un "modèle d'objet nul" approprié décrivant les utilisations de tels objets et leur comportement. Donc, pour un meilleur entraînement, le tableau qui n'a aucune valeur doit être renvoyé en utilisant "[]". Donc, dans ce cas, "resultSet" devrait être donné comme [] au lieu de {} afin qu'il puisse être facilement compris au début.

Il existe ici un certain nombre d'exemples qui montrent pourquoi il est utile de suivre Null Object Pattern. Par exemple, si vous renvoyez count dans votre réponse et qu'il n'y a pas de compte, il vaut mieux utiliser "0" au lieu de "null".

+0

en fait je ne développe pas ce service c'est pourquoi j'ai demandé que je dois teindre back-end à ce sujet ou je peux gérer cela par des logiques ? Merci pour votre réponse – ANinJa

+1

vous pouvez le gérer en utilisant try catch block. – Shivam