【问题标题】:Flutter dart handling json颤振飞镖处理json
【发布时间】:2020-12-25 09:03:42
【问题描述】:

如何在颤振/飞镖中映射这些数据

[{
  "Genesis": {
  "1": "31",
  "2": "25",
  "3": "24",
  "4": "26",
  "5": "32",
  "6": "22",
  "7": "24",
  "8": "22",
  "9": "29",
  ...},
"Exodus":{
  "1": "22",
  "2": "25",
  "3": "22",
  "4": "31",
  "5": "23",
  "6": "30",
  "7": "25",
  "8": "32",
  "9": "35",
  "10": "29",
  "11": "10",
  "12": "51",
 ....} ...}]

使用圣经 JSON,我想让单词将它们存储在字符串 book 下,然后将键存储在一个名为 chapters 的列表中(现在对值不太感兴趣)只对我如何获得这本书感兴趣这个 JSON 的章节

【问题讨论】:

    标签: json flutter dart


    【解决方案1】:

    也许使用这个 JSON 的地图,所以如果你的 JSON 增长,你应该使用这个列表来进行复杂的搜索。

    你可以这样使用:

    final model = books.firstWhere((item) => item.name == name);
    

    如果是,我会创建一个书籍模型,然后将模型填充到 JSON 文件中。

    class BookModel {
      String name;
      Book book;
      BookModel(this.name, this.book);
    }
    

    我创建了一个示例以在颤振中使用,看看这个。 Book Models Sample

    【讨论】:

      【解决方案2】:

      如何对json进行编码和解码:https://dart.dev/guides/libraries/library-tour#decoding-and-encoding-json

      我创建了一个简单的示例,说明如何访问每个元素:

      final sourceList = [{
        "Genesis": {
        "1": "31",
        "2": "25",
        "3": "24",
        "4": "26",
        "5": "32",
        "6": "22",
        "7": "24",
        "8": "22",
        "9": "29",
        },
      "Exodus":{
        "1": "22",
        "2": "25",
        "3": "22",
        "4": "31",
        "5": "23",
        "6": "30",
        "7": "25",
        "8": "32",
        "9": "35",
        "10": "29",
        "11": "10",
        "12": "51",
       }}];
        
        final sourceMap = sourceList.first; // If sourceList.length == 1, otherwise you can iterate throught the list - https://api.dart.dev/stable/2.9.2/dart-core/Iterable/forEach.html
        
        final books = sourceMap.keys; // If sourceList.length > 1, then do it inside forEach
        
        for (var book in books) {
          print(book);
          print(sourceMap[book]);
        }
        
        //You can do whatever you need - print(sourceMap['Exodus']['4']); prints `31`
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-05
        • 2020-09-12
        • 1970-01-01
        • 2020-11-05
        • 1970-01-01
        • 2020-08-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多