gpt4 book ai didi

json - Flutter - 带有 Dart 的通用 json 序列化器

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

我是 Flutter 的新手,正在尝试实现类似于 Swift 通用可解码的东西,如下所示:

struct ParentJson<T>: Decodable where T: Decodable

经过几个小时的搜索,我发现有 2 个库服务于相同的目的 built_valuejson_annotation还有一句话说,<强> Dart does not do generic type erasure .


我正在尝试解析下面的 json:

{ 
"status": 200,
"message": "This message",
"data": {
"uid": "tested",
"email": "test@gmail.com",
"name": "test"
}
}

在这种情况下,data 可以不同,这是我想让数据通用的地方。


built_value generic example T 必须指定为 addBuilderFactory 中的指定类型,正如 David 提到的 here .

this是一个带有 json_annotation 的官方示例。

这两种方式完全违反了泛型的概念,因为我需要在父类或序列化器中声明所有不同的类型,而不是简单地写这样的代码:

Parent<User> user = Parent<User>.deserialize(json.decode(jsonString))

Dart 和 Flutter 专家的问题是,

  • 这是 Dart 语言的限制吗?
  • 有没有办法实现解析 json 的通用值而不用违反通用概念?

最佳答案

实际上,您的用例有一个解决方案。这是一个https://github.com/k-paxian/dart-json-mapper图书馆。

我很确定您正在寻找类似 this 的内容.您会发现工作单元测试说明了您的用例。

关于json - Flutter - 带有 Dart 的通用 json 序列化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62236265/

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