如果字符串是“[]”,我如何控制一个空的 JsonArray [重复]

Posted

技术标签:

【中文标题】如果字符串是“[]”,我如何控制一个空的 JsonArray [重复]【英文标题】:How can I control a empty JsonArray, if string is " [ ] " [duplicate] 【发布时间】:2017-03-13 17:53:39 【问题描述】:

我的 json 字符串是

String RESPONSE = "   "Table": []   ";

我用

 JSONObject jsonObj = new JSONObject(RESPONSE);
 JSONArray contacts = jsonObj.getJSONArray("Table");

因此,contacts = [] 我的意思是空的。 如何控制该数组为空。 在这个控制器之后我使用这个命令

JSONObject c = contacts.getJSONObject(0);

当然不是空的:)

【问题讨论】:

“当然不是空的”是什么意思?您是否在之前的代码中添加了一些内容,其中您获得了一个明显为空的数组? 如果联系人不为空继续 【参考方案1】:

你可以使用length函数:

JSONObject jsonObj = new JSONObject(RESPONSE);
JSONArray contacts = jsonObj.getJSONArray("Table");
if(contacts.length() > 0 ) 
    JSONObject c = contacts.getJSONObject(0);

【讨论】:

我试过了。不工作 发生了什么事,你有什么错误吗?【参考方案2】:

您可以使用isNull() 函数。

JSONObject jsonObj = new JSONObject(RESPONSE);
JSONArray contacts = jsonObj.getJSONArray("Table");
if(!contacts.isNull(0)) 
   JSONObject c = contacts.getJSONObject(0);

【讨论】:

没有这个功能 正确。编辑显示 isNull。 不,不工作 联系人 = " [ ] " ; 为我工作,谢谢!

以上是关于如果字符串是“[]”,我如何控制一个空的 JsonArray [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ajax 将 json 字符串发布到控制器方法?

REST API:PUT但不需要json中的所有数据

在 JSON 文件中保存和加载可为空的字符串

我的 composer.json 的一个存储库现在是空的或私有的 我仍然想使用这个 composer.json 我如何添加新的存储库

gson实体转json时当字段值为空时,json串中就不存在该属于,请问如何在值为空的时候也保留该字符串

生成一组空的 Json 大括号 - 使用 java 和 JSON