WebApi系列 按需序列化字段 Hot

2021-07-07 05:59:29 字數 1143 閱讀 4642

起初只是乙個想法,一次討論,乙個設想,但相信一定可以實現,具體的事情是這樣的,有個對外的api專案,它為一些終端裝置提供資料,如手機,平板,pc,當然你也可以說它為很多平台提供資料win32,mac,ios,android,對於pc裝置來說,介面返回的資料量當然沒有那麼敏感,但對於移動裝置,對這點要求就高些,不需要的資料請不要為我返回,因為那麼會髮費我很多流量!

是的,這是2023年到未來某個時期的熱門話題,網路頻寬是收費的,不要隨便浪費!

終端-〉請求資料報-〉服務端介面接改並處理-〉資料返回並過濾無用字段

這個模型在我的大腦裡呈現,但經過實踐的證明,很遺憾,它是無法實現的,因為你不能為每個屬性動態去新增一種叫做jsonignore的特性(不會被序列化),因為這種特性屬於一種元資訊,我們在程式執行時,只能獲取它,設定它的值,而不能新增或者移除它(反射),當然,你可以從新動態建立乙個類,乙個類的方法和屬性(emit)

資料層和業務層在服務端去幹自己的事,返回自己完整的資料吧,我不去關心它,我關心的是在api返回資料時的動作(序列化),所以第二次想法出來了,將實體物件在進行json序列化時進行加工,將不需要的字段從json字串中去掉,就ok了,注意本**只是第一版,目前還不支援json的巢狀屬性,這個遞迴我打算在第二版再實現它,呵呵,不想讓它太複雜!

下面是我的**

///

///功能:集合按需要序列化

///author:倉儲大叔

/// ///

//////

///public

static

string tojson(this

object type, params

string

param)

"]");

}else

return

buffer.tostring();

}//////

為物件生成json字串

/// ///

//////

static

void generatorjsonstr(stringbuilder buffer, object t, params

string

param)

}if (obj.count > 0)"

");}

序列化(序列化)

原書上翻譯為序列化,msdn翻譯為序列化 作用 當需要儲存,或者網路傳輸 remoting時,資料 物件或值 需要序列化 類似於打包傳輸檔案。system.serializableattribute 序列化是指儲存和獲取磁碟檔案 記憶體或其他地方中的物件。在序列化時,所有的例項資料都儲存到儲存介質上...

序列化(模型序列化 序列化巢狀)

from rest framework import serializers from meituan.models import merchant,class merchantserializer serializers.modelserializer class meta model merch...

序列化和解序列化

serialize 返回乙個字串,包含著可以儲存於 php 的任何值的位元組流表示。unserialize 可以用此字串來重建原始的變數值。用序列化來儲存物件可以儲存物件中的所有變數。物件中的函式不會被儲存,只有類的名稱。要能夠unserialize 乙個物件,需要定義該物件的類。也就是,如果序列化...