JSONObject 去除空值
时间: 2023-07-11 20:53:24 浏览: 165
在 JSONObject 中去除空值可以通过遍历 JSONObject 中的键值对,检查每个值是否为空值,如果是,则将其从 JSONObject 中删除。可以使用以下代码实现:
```java
Iterator<String> keys = jsonObject.keys();
while (keys.hasNext()) {
String key = keys.next();
Object value = jsonObject.get(key);
if (value == null || value.toString().equals("null")) {
keys.remove();
}
}
```
这段代码中,我们通过 `keys()` 方法获取 JSONObject 中所有键的迭代器,然后遍历每个键值对。对于每个键值对,我们检查其值是否为 null 或者字符串 “null”,如果是,则使用 `remove()` 方法将该键值对从 JSONObject 中删除。
相关问题
JSONObject put空值不添加
是的,如果使用 JSONObject 的 put 方法添加的值为 null,它会被视为无效值并不会被添加到 JSONObject 中。如果需要在 JSONObject 中添加 null 值,可以使用 putNull 方法。例如:
```
JSONObject jsonObject = new JSONObject();
jsonObject.putNull("key");
```
这样就可以在 JSONObject 中添加一个值为 null 的键值对。
fastjson去除空值
fastjson在将对象转化成字符串时,默认会去除值为null的键。这是因为在JSON中,键值对中的值为null是可以省略的,所以fastjson会自动去除这些键值对。如果你想保留值为null的键,可以使用SerializerFeature.WRITE_MAP_NULL_FEATURES参数来设置。例如,你可以使用以下代码来保留值为null的键:
String jsonStr = JSON.toJSONString(jsonObject, SerializerFeature.WRITE_MAP_NULL_FEATURES);
这样,转化后的json字符串中就会包含值为null的键。\[2\]另外,你还可以使用SerializerFeature.QuoteFieldNames参数来设定key值使用双引号,例如:
String jsonStr = JSON.toJSONString(jsonObject, SerializerFeature.WRITE_MAP_NULL_FEATURES, SerializerFeature.QuoteFieldNames);
这样,转化后的json字符串中的键值对的key值会使用双引号包裹。\[3\]
#### 引用[.reference_title]
- *1* *2* *3* [Fastjson自动过滤null值问题的解决](https://blog.csdn.net/u012531080/article/details/120848967)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]