物件轉json字串的過程中對value為null的值的一些處理
系列文章目錄
提示:這裡可以新增系列文章的所有文章的目錄,目錄需要自己手動新增
例如:第一章 Python 機器學習入門之pandas的使用
提示:寫完文章後,目錄可以自動生成,如何生成可參考右邊的幫助文件
前言
提示:這裡可以新增本文要記錄的大概內容:
例如:隨著人工智慧的不斷髮展,機器學習這門技術也越來越重要,很多人都開啟了學習機器學習,本文就介紹了機器學習的基礎內容。
提示:以下是本篇文章正文內容,下面案例可供參考
一、pandas是什麼?
示例:pandas 是基於NumPy 的一種工具,該工具是為了解決資料分析任務而建立的。
二、使用步驟
1.引入庫
程式碼如下(示例):
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
2.讀入資料
程式碼如下(示例):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
該處使用的url網路請求的資料。
提示:這裡對文章進行總結:
例如:以上就是今天要講的內容,本文僅僅簡單介紹了pandas的使用,而pandas提供了大量能使我們快速便捷地處理資料的函式和方法。
fastjson,物件轉json字串的過程中對value為null的值的一些處理
前言
fastjson是一個非常好用的java庫,用於操作物件json序列化等等。
問題
最近在寫程式碼的時候遇到問題,通過JSON.toJSONString方法將一個實體物件轉為json字串,轉出來發現原本
物件中value為null的欄位被過濾掉了。。。
總結
1.實體物件
package so.sao.code;
import lombok.Data;
@Data
public class Person {
String name;
String gender;
String nickname;
String phone;
}
測試程式碼
public static void main(String[] args) {
Person person = new Person();
person.setName("wyz");
String json = JSON.toJSONString(person);
System.out.println(json);
}
輸出結果
發現只有設定了值的欄位name才有輸出,而其餘為空的欄位則都被過濾掉了
解決
怎樣讓值為null的key不被過濾掉
設定SerializerFeature
設定SerializerFeature裡面有很多特性可以使用
要讓空值也能夠輸出的特性值是SerializerFeature.WriteMapNullValue
改造程式碼:
public static void main(String[] args) {
Person person = new Person();
person.setName("wyz");
// String json = JSON.toJSONString(person);
// System.out.println(json);
// 設定SerializerFeature
System.out.println(JSON.toJSONString(person, SerializerFeature.WriteMapNullValue));
}
輸出結果:
值為null屬性直接放到json字串裡面不太好看,能不能把null值轉成其他的值,比如空字串
這個時候就需要用到過濾器了,仔細看看JSON.toJSONString的其他幾個方法
toJSONString方法中可以放一個或多個過濾器,常用的過濾器有以下幾種:
要實現把null值轉為空字串的效果可以使用ValueFilter
程式碼實現:
public static void main(String[] args) {
Person person = new Person();
person.setName("wyz");
// String json = JSON.toJSONString(person);
// System.out.println(json);
// 設定SerializerFeature
// System.out.println(JSON.toJSONString(person, SerializerFeature.WriteMapNullValue));
// 設定NameFilter
System.out.println(JSON.toJSONString(person, (ValueFilter) (object, name, value) -> {
if(value == null){
return "";
}
return value;
}));
}
輸出結果:
一個特殊的需求,有的值為null需要過濾,有的又不需要過濾。。。(這就是我遇到的)
使用PropertyFilter
程式碼實現:
public static void main(String[] args) {
Person person = new Person();
person.setName("wyz");
// String json = JSON.toJSONString(person);
// System.out.println(json);
// 設定SerializerFeature
// System.out.println(JSON.toJSONString(person, SerializerFeature.WriteMapNullValue));
// 設定NameFilter
// System.out.println(JSON.toJSONString(person, (ValueFilter) (object, name, value) -> {
// if(value == null){
// return "";
// }
//
// return value;
// }));
// 設定PropertyFilter
System.out.println(JSON.toJSONString(person, new PropertyFilter() {
@Override
public boolean apply(Object object, String name, Object value) {
return name.equals("gender") || value != null;
}
}, SerializerFeature.WriteMapNullValue));
}
輸出結果:
相關文章
- 【C#】-對於Null值的處理方法C#Null
- Java 中關於 null 物件的容錯處理JavaNull物件
- JS json字串轉物件、物件轉字串JSON字串物件
- .NET Core 處理 WebAPI JSON 返回煩人的null為空WebAPIJSONNull
- Laravel response 返回的值全部處理為字串Laravel字串
- JSON字串轉換為物件直接量JSON字串物件
- fastjson: json物件,json物件陣列,javabean物件,json字串之間的相互轉化ASTJSON物件陣列JavaBean字串
- PHP 去除 bom 頭,JSON_decode () 返回 NULL,PHP 無法對字串做處理PHPJSONNull字串
- python中PCA的處理過程PythonPCA
- GC析構物件和列表的處理過程GC物件
- Jackson JSON包在從物件對映到Json字串過程的迴圈依賴問題-分析與解決JSON物件字串
- Json物件與Json字串互轉JSON物件字串
- js物件轉json字串物件JSON字串
- JavaScript將物件轉換為JSON格式字串JavaScript物件JSON字串
- eval()將JSON格式字串轉換為物件JSON字串物件
- c# 對JSON字串排序(KEY/VALUE)C#JSON字串排序
- DOM在Ahooks中的處理過程Hook
- 面試題((A)null).fun()——java中null值的強轉面試題NullJava
- java將物件轉為json的方式Java物件JSON
- json 物件與json 字串的區別。JSON物件字串
- js jquery 列印物件;json 物件轉字串jQuery物件JSON字串
- JavaScript 字串與json物件互轉的幾種方法JavaScript字串JSON物件
- Java將Boolean轉為Json物件的方法JavaBooleanJSON物件
- json字串與物件互相轉換JSON字串物件
- 物件由生到死的一些過程物件
- Hashtable/HashMap與key/value為null的關係HashMapNull
- FastJson 序列化處理 null 值ASTJSONNull
- 過早的給方法中 引用物件 設為 null 可被 GC提前回收嗎?物件NullGC
- 如何將資料庫中json格式的列值對映到java物件的屬性中資料庫JSONJava物件
- Java SimpleDateFormat處理日期與字串的轉換JavaORM字串
- 將數值轉換為字串的函式字串函式
- 實時流處理與分散式儲存過程中對檔案的操作分散式儲存過程
- JDBC中Date日期物件的處理JDBC物件
- 取出字典中value最大值對應的key
- JS 獲取陣列物件的值&提取Object的valueJS陣列物件Object
- JS中將一個值轉換為字串的3種方法JS字串
- JS字串轉換為JSON的四種方法筆記字串JSON筆記
- eval() JSON轉換為物件JSON物件