gpt4 book ai didi

flutter - Dart: 如何使用点符号,未捕获的 TypeError 问题

转载 作者:行者123 更新时间:2023-12-03 03:36:09 25 4
gpt4 key购买 nike

我在 dart 中有以下代码,它将字符串解码为 JSON 对象。

import 'dart:convert';

void main(){
var stringValue = "{\"last_supported\": \"2.00\", \"current\": \"2.00\"}";
var newValue = json.decode(stringValue);

print(newValue["last_supported"]);
}

上面的代码工作正常,但是当我将 print 语句更改为:打印(newValue.last_supported);
它给了我以下异常:
未捕获的类型错误:C.C_JsonCodec.decode$1(...).get$last_supported 不是函数

是否可以使用点注释来访问属性,如何使用?

最佳答案

我猜你有 java 脚本背景。

在 dart 对象中,键不能通过 . 点符号访问。相反,它们像使用 ['key_name'] 的数组一样被访问。

所以这就是这条线不起作用的原因

print(newValue.last_supported)

还有这个

print(newValue["last_supported"]);

dart 中的点符号仅适用于类实例,不适用于 Map(类似于 JavaScript 对象)。请看以下内容:

class User {
final String name;
final int age;
// other props;

User(this.name, this.age);
}

现在,当您创建一个新的用户对象时,您可以使用点符号访问其公共(public)属性

final user = new User("john doe", 20); // the new keyword is optional since Dart v2

// this works
print(user.name);
print(user.age);

// this doesn't work because user is an instance of User class and not a Map.
print(user['name]);
print(user['age]);

有关 new 关键字的更多信息,您可以阅读 v2 发行说明 here .

关于flutter - Dart: 如何使用点符号,未捕获的 TypeError 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61043168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com