我正在尝试将JSON文件映射到类对象,然后根据新接收的JSON更新卡。
我的JSON结构是这样的
{
"$class": "FirstCard",
"id": "1",
"description": "I am card number one",
"Role": "attack",
"score": 0,
"tag": [
"string"
],................}
我的班级看起来像这样:
class CardInfo {
//Constructor
String id;
String description;
String role;
int score;
}
如何将JSON文件中的值映射到CardInfo类创建的对象的字段中?
更新资料
以下试用版在 ci.description上 打印为null ,是否表示从未创建该对象?
const jsonCodec = const JsonCodec
_loadData() async {
var url = 'myJsonURL';
var httpClient = createHttpClient();
var response =await httpClient.get(url);
print ("response" + response.body);
Map cardInfo = jsonCodec.decode(response.body);
var ci = new CardInfo.fromJson(cardInfo);
print (ci.description); //prints null
}
更新2
打印cardInfo给出以下内容:
{$ class:FirstCard,id:1,说明:我是第一卡,....}
请注意,它类似于原始的JSON,但在字符串值上没有双引号。
class CardInfo {
//Constructor
String id;
String description;
String role;
int score;
CardInfo.fromJson(Map json) {
this.id = json['id'];
this.description = json['description'];
this.role = json['Role'];
this.score = json['score'];
}
}
var ci = new CardInfo.fromJson(myJson);
您可以使用源生成工具,例如
https://github.com/dart-
lang/source_gen
https://pub.dartlang.org/packages/json_serializable
为您生成序列化和反序列化代码。
如果您更喜欢使用不可变的类,那么https://pub.dartlang.org/packages/built_value是一个不错的选择。
假设我有这样的物体 我正在使用RestTemboard类从URL中获取json,如下所示: 之后,我想使用jackson对象映射器将json字符串转换为一个对象 将实体类作为第二个参数传递 问题是我应该如何编写ExampleJson实体来处理get-Showed json?我试过这样上课,但似乎不管用。 我得到了这样一个例外:
问题内容: 我一直在尝试使用PC上的JSON文件将JSON数据映射到Java对象,但是它总是抛出异常: 我的数据类: 我的映射器类: json文件包含以下数据: 我究竟做错了什么?我正在使用Jackson图书馆。 问题答案: 这是我在您的代码中看到的问题列表: 该属性应放在类之上,而不是类之上。查阅文档,最值得注意的是有关“ ignoreUnknown”属性的说法,默认为false: 公共抽象布尔
问题内容: 我将开始一个使用Spring和Hibernate管理的REST应用程序项目。 我知道Spring允许您从HTTP Request(带有注释)中获取Java对象。如果此Java对象也是Hibernate实体,是否有冲突?嵌套对象是否起作用(如关系)? 问题答案: 我们正在使用这种方法来简化设计并摆脱许多dto(我们滥用它们太多了)。基本上,它对我们有用。 但是,在我们的REST模型中,我
问题内容: 我在了解如何实现这一目标方面遇到了问题。 基本上我们有一个API,用户发送以下格式的JSON :(如果代码不完美,请原谅,但您可以理解) 好的,我不确定我是否正确设置了JSON格式,但是现在这是我的问题。 我有一个带有参数Name,Last的类,还有一个作为其成员之一的对象Client和Property Date。 像这样: 因此,基本上,我不确定如何获取JSON,然后将其映射到我的对
我编写了货币转换器程序,从,映射对象并创建选定速率的简单数据集。我的程序运行得很好,直到我停止使用解析和映射对象,并用替换它。它可以很好地读取基础货币和日期,但不能读取<代码>汇率 子对象。为什么? 我的代码:类别: 类: 必须使用映射对象的类: 我试图解析和映射的示例JSON数据 我正在使用这个对象来准备对象,该对象具有一个简单的
我使用http://jsonlint.com来验证JSON是否有效。因此,我要么需要更改JSON或代码,要么可能两者都需要。有什么想法吗?