如何检查json数组是否有任何值?

时间:2016-03-17 08:25:25

标签: android json

我正在使用条件 -

if (!obj2.getString("patronCheckoutInfo").equals("null")) {

但是当数组得到值时,它不起作用。

例如:Case1-当json获得“patronCheckoutInfo”的值时:

{
"ErrorMessage": ""
"Message": "Operation completed successfully"
"Status": "OK"
"Results": {
"LookupPatronInfoResponse": {
"patronAddressInfo": null
"patronCheckoutHistoryInfo": null
"patronCheckoutInfo": [6]
0:  {
"author": "Cobb, Kevin."

案例2 - 没有价值时:

{
"ErrorMessage": ""
"Message": "Operation completed successfully"
"Status": "OK"
"Results": {
"LookupPatronInfoResponse": {
"patronAddressInfo": null
"patronCheckoutHistoryInfo": null
"patronCheckoutInfo": null
"patronCirculationInfo": null

尝试了一些教程,但无法弄清楚。任何建议都是受欢迎的。提前谢谢。

6 个答案:

答案 0 :(得分:3)

您可以使用支持功能isNullhttp://developer.android.com/reference/org/json/JSONObject.html#isNull(java.lang.String)

因此,在这种情况下重新编写代码:

if (!obj2.isNull("patronCheckoutInfo")) {
// do something 
}

答案 1 :(得分:2)

是的,您可以检查Json中是否存在特定的密钥。

它非常简单.. !! 试试这个..

boolean response = jsonobject.has("patronCheckoutInfo")

希望这会对你有所帮助, 快乐的编码

答案 2 :(得分:2)

试试这个:

if(obj2.has("patronCheckoutInfo")){
//write your code
}

答案 3 :(得分:0)

尝试

if (!obj2.getString("patronCheckoutInfo").equals("null"))

String patronCheckoutInfo = obj2.getString("patronCheckoutInfo");
if(!TextUtils.isEmpty(patronCheckoutInfo)){
  // string has value
}else{
  // string is empty
}

答案 4 :(得分:0)

感谢大家的建议。以下对我有用:

if (obj2.getString("patronCheckoutInfo") != null)

答案 5 :(得分:0)

您可以尝试这样:

JSONArray patronCheckoutInfo= obj2.optJSONArray("patronCheckoutInfo");
if(patronCheckoutInfo){
        for (int i = 0; i < invitations.length(); i++) {
              JSONObject patronCheckoutInfoObject= patronCheckoutInfo.getJSONObject(i);
        }
}