物件轉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 String 對 null 物件的容錯處理JavaNull物件
- js字串與json物件處理字串JSON物件
- Java 中關於 null 物件的容錯處理JavaNull物件
- Laravel response 返回的值全部處理為字串Laravel字串
- js 將json字串轉換為json物件的方法解析JSON字串物件
- .NET Core 處理 WebAPI JSON 返回煩人的null為空WebAPIJSONNull
- 資料轉換衝突及轉換過程中大物件的處理物件
- JS json字串轉物件、物件轉字串JSON字串物件
- json字串和json格式物件的轉換JSON字串物件
- Android中實現JSON字串和JSON物件的轉換AndroidJSON字串物件
- GC析構物件和列表的處理過程GC物件
- python中PCA的處理過程PythonPCA
- DOM在Ahooks中的處理過程Hook
- Oracle 排序中常用的NULL值處理方法Oracle排序Null
- JSON字串轉換為物件直接量JSON字串物件
- java json字串轉換為物件,轉換為listJavaJSON字串物件
- 面試題((A)null).fun()——java中null值的強轉面試題NullJava
- sql對於字串的處理SQL字串
- c# 對JSON字串排序(KEY/VALUE)C#JSON字串排序
- PHP 去除 bom 頭,JSON_decode () 返回 NULL,PHP 無法對字串做處理PHPJSONNull字串
- JMeter中對於Json資料的處理方法JMeterJSON
- JavaScript將物件轉換為JSON格式字串JavaScript物件JSON字串
- eval()將JSON格式字串轉換為物件JSON字串物件
- JavaScript將JSON格式字串轉換為物件JavaScriptJSON字串物件
- 如何將列中的low_value和high_value轉換為實際的值
- 對Boost庫中的數值到字串的轉換的改進 (轉)字串
- 一次壞塊的處理過程 [轉]
- AutoMapper在MVC中的運用05-對映中的忽略、處理null、多種對映轉換APPMVCNull
- hive中的null值HiveNull
- oracle處理SQL的過程OracleSQL
- fastjson: json物件,json物件陣列,javabean物件,json字串之間的相互轉化ASTJSON物件陣列JavaBean字串
- delphi中的字串處理,以及幾個字串型別的說明。 (轉)字串型別
- js物件轉json字串物件JSON字串
- OGG 配置過程中的錯誤處理
- MySQL分割槽, 子分割槽以及對錄入Null值的處理情況MySqlNull
- MyBatis中對於字串blank(null、empty)的判定方法MyBatis字串Null
- Jackson JSON包在從物件對映到Json字串過程的迴圈依賴問題-分析與解決JSON物件字串