JSONArray返回数据,List 对象属性值为null,不显示key值的解决方案
导包信息:
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.Collections;
@ResponseBody
@RequestMapping(value = "xxxx")
public ResponseData xxxx(String xxx, @RequestParam(defaultValue = "types") String types) {
ResponseData data = operateFailed("操作失败,未获取到数据!");
if (StringUtils.isBlank(xxx)) {
data = operateFailed("xxx为空!");
return data;
}
List<User> userList = usereService.getList(user);
userList.removeAll(Collections.singleton(null));
if (CollectionUtils.isNotEmpty(selectedList)) {
JSONArray userArray = JSONArray.parseArray(JSON.toJSONString(userList, SerializerFeature.WriteNullStringAsEmpty));
data = operateSucess("获取数据成功,数量为:" + userList.size(), userArray);
}
return data;
}
其他方法属性:
SerializerFeature类里的一些属性的具体含义
QuoteFieldNames———-输出key时是否使用双引号,默认为true
WriteMapNullValue——–是否输出值为null的字段,默认为false
WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null
WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null
WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null
WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null