簡體   English   中英

當 dart 中的屬性可能有兩種類型時,如何解析 json

[英]How to parse json when an attribute might have two types in dart

我正在使用相同的 model 來解析 2 個 json 響應,

在一個響應中,屬性user是字符串類型,而在另一個響應中, user是 object。

在這種情況下我該如何解析? 我試過了,

CampaignProductDetails.fromJson(Map<String, dynamic> json) {
  user= json['user'];
}

Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
  data['user'] = this.user;
  return data;
}

但是當user是 object 時,它會顯示 _typeError。 我該如何整理? 我需要為這個單一屬性創建一個新的 model 嗎?

您可以在 Dart 中使用is運算符

CampaignProductDetails.fromJson(Map<String, dynamic> json) {
   user= json['user'] == null ? null : (json['user'] is String ? json['user'] : this.user;
} 

作為替代方案,在 Dart 中,每個 object 都有一個runtimeType實例成員,它在運行時返回 object 的類型(我不建議在生產中使用它,在某處讀到它只是)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM