我在 Flutter 中使用 json_serializable 將類存盤在檔案中并從中讀取。為簡單起見,我不會在這里發布原始類,但原則是在撰寫應用程式的一半時,我決定將變數名稱“aStupidName”更改為“name”。我如何建議代碼生成實用程式將帶有鍵“aStupidName”的 JSON 值(如果它存在于 JSON 中)分配給變數“name”,但如果鍵“name”存在以將其分配給變數,即在較新版本的檔案中?
uj5u.com熱心網友回復:
嘿,我認為您可以做的是為模型中的同一欄位提供多個 json 鍵注釋。
@JsonSerializable()
class Person {
@JsonKey(name: 'name')
@JsonKey(name:'first_name')
final String firstName, lastName;
final DateTime? dateOfBirth;
Person({required this.firstName, required this.lastName, this.dateOfBirth});
factory Person.fromJson(Map<String, dynamic> json) => _$PersonFromJson(json);
Map<String, dynamic> toJson() => _$PersonToJson(this);
}
或者,您可以給 json 鍵注釋一個顯式的fromJson引數一個函式來完全控制這個欄位如何反序列化
uj5u.com熱心網友回復:
您可以修改檔案并替換舊的物件名稱。例如你可以用 sed
sed -i 's/{OLD_TERM}/{NEW_TERM}/g' {file}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/377567.html
