在 JSON 负载中使用嵌套映射

问题描述 投票:0回答:1

我仍在学习如何使用 JSON。我有一个从 API 返回的新 JSON 负载。有效负载由映射列表组成,映射内部是嵌套映射。

在返回的地图中,我有一个元素是另一个地图,但它没有元素。我该如何处理这个问题?

元素 #6,features,没有项目:

Map (10 items)
0:"addressLine1" -> "3223B Palm Desert Ln"
1:"city" -> "Missouri City"
2:"state" -> "TX"
3:"zipCode" -> "77459"
4:"formattedAddress" -> "3223B Palm Desert Ln, Missouri City, TX 77459"
5:"county" -> "Fort Bend"
6:"features" -> Map (0 items)
7:"id" -> "3223B-Palm-Desert-Ln,-Missouri-City,-TX-77459"
8:"longitude" -> -95.554532
9:"latitude" -> 29.581225

我尝试了类似于在下面的下一项中处理地图的方式,即taxAssessment,但我收到错误: 参数类型“Map”无法分配给参数类型“Features?”

factory PropertyInformation.fromJson(Map<String?, dynamic> json) {
    return PropertyInformation(
      addressLine1: json['addressLine1'],
      city: json['city'],
      state: json['state'],
      zipCode: json['zipCode'],
      formattedAddress: json['formattedAddress'],
      assessorId: json['assessorId'],
      bedrooms: json['bedrooms'],
      county: json['county'],
      legalDescription: json['legalDescription'],
      squareFootage: json['squareFootage'],
      subdivision: json['subdivision'],
      yearBuilt: json['yearBuilt'],
      bathrooms: json['bathrooms'],
      lotSize: json['lotSize'],
      propertyType: json['propertyType'],
      lastSaleDate: json['lastSaleDate'] == null ? DateTime.now() : DateTime.parse(json['lastSaleDate']),
      //features: Features.fromJson(json['features']),
      features: Map.from(json['features']).map((k, v) =>
          MapEntry<String?, Features>(
              k, Features.fromJson(v as Map<String?, dynamic>))),
      taxAssessment: Map.from(json['taxAssessment']).map((k, v) =>
          MapEntry<String?, TaxAssessment>(
              k, TaxAssessment.fromJson(v as Map<String?, dynamic>))),
      propertyTaxes: Map.from(json['propertyTaxes']).map((k, v) =>
          MapEntry<String?, PropertyTax>(
              k, PropertyTax.fromJson(v as Map<String?, dynamic>))),
      owner: Owner.fromJson(json['owner']),
      id: json['id'],
      longitude: json['longitude'],
      latitude: json['latitude'],
    );
  }

如何处理空的 Map 对象? 谢谢

json flutter dart maps
1个回答
0
投票

如果功能只是一个对象,你会喜欢这个

Feature.fromJson(json['features'])
。如果该功能是功能列表,您将
json['features'].map((json)=>Features.fromJson(json)).toList()

© www.soinside.com 2019 - 2024. All rights reserved.