JSONObject optString或者getString方法取null问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSONObject optString或者getString方法取null问题相关的知识,希望对你有一定的参考价值。

参考技术A 近来,在与服务端联调时发现个问题,总是拿不到数据,后来服务端发现客户端有个值为字符串"null"传过去了,服务端解析不了,导致该问题。

那为什么会传字符串"null"呢?原来是服务端下发的该值为null,但通过JSONObject.optString方法进行解析时,会把null转变为"null"字符串,故而出现该问题。另外,其getString方法也有这个问题。如:json数据:



"title": null,

"autoPlay": 0



则通过optString或者getString拿到的title为"null",则错误。

那么应如何避免呢?一个是服务端不下发null,防止该问题; 第二种方法则是客户端拿到数据后进行校正,校正方法有二:1、optString后进行判断是不是"null"字符串,是的话则置空;2、在调用optString前先通过JSONObject.isNull这个方法进行检测,如果不是null再取值,以防止得到"null"字符串。

以上是关于JSONObject optString或者getString方法取null问题的主要内容,如果未能解决你的问题,请参考以下文章

JSONObject optString

关于JSONObject取值方法getString()与optString()

JSON jsonObject.optString() 返回字符串“null”

jsonObject和JsonArray转化String

fastjson判断一个json是jsonArray还是jsonObject

数组操作object转json