我不知道我是否使用了错误的方法? 但是当我执行这行代码时:
JSONUtils.isNull(Score.JSON_SCORE_QUESTION)?null:json.getLong(Score.JSON_SCORE_QUESTION)
Score.JSON_SCORE_QUESTION
是关键字“qs”):
{"username":"Stefan","points":1295,"level":26,"scomment":"Wuhuuuu","uuid":"08c3a06c-ad9a-4ec0-aec9-4223517389d3","sid":11747,"rank":121,"sstempel":1388768015000,"model":"SCORE"}
isNull
始终返回false
。
我需要另一种方法吗?
答案 0 :(得分:0)
JSONUtils.isNull“测试obj是否是javaScript null
(即JSONNull
)”,但字符串(例如“qs”)在任何适用的上下文中都不为空。此函数用于处理值,与属性无关。 (是静态的,无论如何都无法使用json
对象中的数据!)
相反,JSONObject.has(key)
(或containsKey
)应该用于确定属性的存在:
Long score = json.has(Score.JSON_SCORE_QUESTION)
? json.getLong(Score.JSON_SCORE_QUESTION)
: null; /* or use a long primitive and provide a default */
或者,以下可能有效(YMMV):
Long score = (Long)json.get(Score.JSON_SCORE_QUESTION);