Как отфильтровать карту во флаттере? - PullRequest
1 голос
/ 14 мая 2019

У меня есть файл json, как показано ниже.Когда пользователь выбирает сумму и срок погашения, мне нужно показать значение срока погашения.

Пример: Если пользователь выбирает сумму = 500, а срок погашения = 24M.Мне нужно показать число 6.

Как отфильтровать карту во флаттере?

Вот что я сделал до сих пор:

Мой файл json:

{  
   “AMOUNT”:[  
      {  
         "500":{  
            “MATURITY":[  
               {  
                  "12M”:”4”
               },
               {  
                  "24M”:”6”
               },
               {  
                  "36M”:”8”
               },
               {  
                  "48M”:”10”
               },
               {  
                  "60M”:”12”
               }
            ]
         },
         “1000":{  
            “MATURITY":[  
               {  
                  "12M”:”8”
               },
               {  
                  "24M”:”12”
               },
               {  
                  "36M”:”16”
               },
               {  
                  "48M”:”20”
               },
               {  
                  "60M”:”24”
               }
            ]
         }
      }
   ]
}

Json Load:

// Test part trying to load json into basic map...
String jsonFastMaturity = await rootBundle.loadString("assets/myfile.json");
Map _mapFastMaturity = jsonDecode(jsonFastMaturity);
List _tmpFastMaturity = _mapFastMaturity[“AMOUNT”];

1 Ответ

1 голос
/ 14 мая 2019

Это должно работать

   final amount = "500";
   final maturity = "24M";
   _mapFastMaturity["AMOUNT"][0][amount]["MATURITY"].singleWhere((m) => m.containsKey(maturity))[maturity]

Это должно помочь при отладке, если вы получаете ошибку. В какой строке вы получаете сообщение об ошибке?

   final a = _mapFastMaturity["AMOUNT"];
   final b = a[0];
   final c = b[amount];
   final d = c["MATURITY"];
   final e = d.singleWhere((m) => m.containsKey(maturity));
   final f = e[maturity];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...