在Flutter中解析复杂的JSON(一篇顶十篇)

“address2”

]

}

So in this address.json, we have city entity that has a simple String value, but streets is an array of String.

据我所知,Dart没有数组数据类型,但是有 a List 所以这里streets是一个List<String>

现在我们必须检查Rule#1和Rule#2。这绝对是一 map 因为它以花括号开头。. streets is still a List though, 但我们稍后会担心。

所以address_model.dart最初看起来像这样

class Address {

final String city;

final List streets;

Address({

this.city,

this.streets

});

}

现在,由于这是一amap, 因此我们的Address.fromJson方法将仍然具有一个Map<String, dynamic>参数。

factory Address.fromJson(Map<String, dynamic> parsedJson) {

return new Address(

city: parsedJson[‘city’],

streets: parsedJson[‘streets’],

);

}

现在,address_services.dart通过添加我们上面提到的3个片段来构建。必须记住要放置正确的文件名和方法名。示例项目已经*address_services.dart*为您构建。

现在,当您运行此命令时,您将得到一个不错的小错误。:/

type ‘List’ is not a subtype of type ‘List’

我告诉你,这些错误几乎都发生在我使用Dart开发的每个步骤中。而且您也将拥有它们。因此,让我解释一下这意味着什么。我们正在请求一个,List<String>但是却收到一个,List<dynamic>因为我们的应用程序尚无法识别类型。

因此,我们必须将其明确转换为 List<String>

var streetsFromJson = parsedJson[‘streets’];

List streetsList = new List.from(streetsFromJson);

在这里,首先我们将变量映射streetsFromJsonstreets实体。streetsFromJson还是一个List<dynamic>。现在,我们明确地创建一个新的List<String> streetsList包含所有元素streetsFromJson

此处检查更新的方法。_现在注意return语句。

现在,您可以运行此程序,_*address_services.dart*它将完美运行。

Json结构#3:简单嵌套结构

==========================================================================

现在,如果我们有一个来自shape.json的嵌套结构,该怎么办

{

“shape_name”:“rectangle”,

“property”:{

“width”:5.0,

“breadth”:10.0

}

}

在这里,<

  • 22
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值