En utilisant le @ResponseBody
fourni par spring, il est très pratique de renvoyer l'objet json.
Mais un problème est qu'il est parfois impossible de déterminer si @ResponseBody
会返回empty(""
)还是null,题主大致观察了一下。好像对于java中的String不管是null
还是""
,最终通过json返回的都是""
,而对于Object,都会返回null
,而对于int型数据都会返回0
retournera vide(""
) ou null L'interrogateur a fait une observation approximative. Il semble que pour String en Java, qu'il soit null
ou ""
, ce qui est finalement renvoyé via json est ""
, tandis que pour Object , il sera renvoyé null
et 0
sera renvoyé pour les données de type int.
La conclusion ci-dessus est-elle correcte ?
Ceci est lié au type de variable d'instance dans votre pojo et à la bibliothèque json utilisée (la bibliothèque json peut définir comment gérer null)
1. Lorsque vous renvoyez POJO, vous pouvez encapsuler les données commerciales, par exemple dans la classe JSONResult, qui contient du code, des messages et des données. Les données sont les données commerciales (c'est-à-dire l'instance POJO), le code est le statut. code, et msg est la description. De cette façon, il peut être utilisé comme données métier. Lorsqu'il est vide, renvoyez simplement le code d'erreur, de sorte que le résultat renvoyé soit toujours des données au format json, ce qui est pratique pour l'appelant de l'interface. .
2. Renvoyez directement les données au format JSON, utilisez fastjson ou net.sf.json pour renvoyer directement l'objet JSONObject et remplissez les données métier dans l'objet JSONObject manuellement ou automatiquement.
Si vous utilisez la bibliothèque Jackon, vous pouvez annoter @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) sur le pojo. Dans ce cas, si une certaine valeur d'attribut est nulle ou "", la clé ne sera pas incluse lors de la sérialisation dans. json