【问题标题】:Flutter how to parse JSON Mongodb dataFlutter如何解析JSON Mongodb数据
【发布时间】:2020-08-21 07:34:38
【问题描述】:

我正在尝试使用 mongodb 解析一些 JSON 数据。我没有找到数据我认为问题在于mongodb数据中的字段差异

{"imei":"865566048694354","_id":"5e7c996fd6eb5f039c50bd26","createdAt":"2020-03-26T12:00:47.021Z","updatedAt":"2020-03-26T12:00:47.021Z","__v":0},{"imei":{"test":{"tactileState":"ignore","pixelState":"ignore"},"name":"h12hhhhgkhh"},"_id":"5ea8357d8c562b3dd8fe5bf1","createdAt":"2020-04-28T13:54:05.094Z","updatedAt":"2020-04-28T13:54:05.094Z","__v":0},{"imei":{"test":{"tactileState":"ignore","pixelState":"ignore"},"name":"h12hhhhgkhh"},"_id":"5ea8366741a5e527446744a2","createdAt":"2020-04-28T13:57:59.035Z","updatedAt":"2020-04-28T13:57:59.035Z","__v":0},{"imei":{"test":{"tactileState":"ignore","pixelState":"ignore","greyState":"ignore"},"name":"h12hhhhgkhh"},"_id":"5ea837614cf7ed30f0163c38","createdAt":"2020-04-28T14:02:09.395Z","updatedAt":"2020-04-28T14:02:09.395Z","__v":0},{"imei":{"test":{"bafleState":"1","microState":"1","vibreurState":"1"},"name":"h12hhhhgkhh"},"_id":"5ea837854cf7ed30f0163c39","createdAt":"2020-04-28T14:02:45.287Z","updatedAt":"2020-04-28T14:02:45.287Z","__v":0}
   

如果你能帮助我如何编写类以及如何在flutter中编写方法,因为我所做的一切总是快照没有数据我认为mongodb数据中字段差异的问题会导致问题,因为所有教程我看到的文章没有使用不同的数据库字段,即使嵌入文档也总是相同的结构。

【问题讨论】:

  • 你从哪里得到这个 json?直接来自MongoDB?还是从服务器?然后可以配置服务器解析ObjectIDs 和ISODatess 吗?
  • 这个json来自机器人3T
  • 所以你复制了它?通常一个 json 不会有 ObjectIDISODate 这样的值。机器人 3T 有导出最终 JSON 的功能吗?
  • 是的,我做了所有你可以在这里找到细节的工作stackoverflow.com/questions/61613180/…

标签: java android ios flutter dart


【解决方案1】:

假设你有一个这样的 json

{
 "name": "John Smith",
 "email": "john@example.com"
}

使用 `dart:convert,您可以通过两种方式序列化这个 JSON 模型。

Map<String, dynamic> user = jsonDecode(jsonString);
print('Howdy, ${user['name']}!');

或者创建一个这样的模型

class User {
final String name;
final String email;

User(this.name, this.email);

User.fromJson(Map<String, dynamic> json)
  : name = json['name'],
    email = json['email'];

Map<String, dynamic> toJson() =>
{
  'name': name,
  'email': email,
};
}

然后像这样使用它:

Map userMap = jsonDecode(jsonString);
var user = User.fromJson(userMap);

print('Howdy, ${user.name}!');

参考是here

【讨论】:

  • 再问一个问题,如果模型像这样{name : mohamed email: mohamed@gmail.com} 和再一次{name : ali age:20}
  • 您可以使用 Date.. 或简单地使用 String。然后在任何需要的地方,您都可以将字符串转换为日期对象。
  • 请你帮我写一个get方法,因为我总是有同样的错误
  • 您能告诉我 API 的响应是什么吗? API 中的日期是如何翻译的?
  • 我将问题修改为 response.body 检查它
猜你喜欢
  • 2020-10-13
  • 2020-01-07
  • 2021-10-21
  • 1970-01-01
  • 2021-07-13
  • 2020-06-26
  • 2020-01-25
  • 2021-02-25
  • 2021-01-31
相关资源
最近更新 更多