用户登录

通过网络请求服务端接口,一般获取到的数据都是 JSON  格式的,我们要在应用里使用它需要使用 jsonDeocde 转换一下。鼠标放在这个转换之后生成的数据的上面,会显示这个数据的类型现在是 dynamic,也就是编辑器并不知道它里面都有哪些属性。

我们可以自己定义一个类型,然后把请求获取到的 JSON 数据转换成这个自定义类型的数据。在项目下面新建一个文件,放在 lib/user 的下面,名字是 user.dart,在这个文件里定义一个类,类的名字是 User,类里面添加两个属性,一个 int 类型的属性,名字是 id,再添加一个 String 类型的属性,名字是 name。 添加一个构造方法,方法有两个带名字的参数,一个是 id,一个是 name。

然后我们在这个类里面再定义一个工厂方法,用这个方法根据给它提供的 JSON 格式的数据制造一个 User 实例。User.fromJson,接收一个 String 类型的参数,名字是 json ,在这个方法里声明一个 user,它的值可以用 jsonDecode 处理一下 json 这个参数的值。再让这个方法 return 一个 User 实例,设置一下它的 id 属性,值是 user 里的 id,再设置一下 name 属性,值是 user 里的 name。

回到 playground_http.dart,在这个 getUser 方法里面,这个 user 的值,现在我们可以用一下 User 里的 fromJson 这个工厂方法制造一个 User 类的实例,给它提供一个 JSON 字符串,这里就是 response.body 属性的值。 鼠标放在这个 user 的上面,会提示它是一个  User 类型的数据,这样编辑器就知道它里面都有什么东西了。

下面可以在控制台上直接输出这个 user 里的 id ,注意这里输入 user 点的时候就会提示这个 user 里的一些属性。再输出这个 user 里的 name 的值。

在模拟器测试一下,在练习页面按一下这个按钮,从服务端接口那里获取到 JSON 格式的数据,然后用 User 类的 fromJson 工厂制造出来一个 User 数据,这里会在控制台上输出这个 User 里的 id 还有 name 属性的值。

将 JSON 数据转换成自定义的类型《 Flutter 2:网络请求 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点