Как передать массив json и его объект и ключи объекта во флаттер. - PullRequest
0 голосов
/ 29 марта 2019

[введите описание изображения здесь] [1] Я хочу проанализировать массив json, его объект и ключи в объекте массива.как я могу разобрать .?

http.Response response=await http.get("api url");
   List resJson=json.decode(response.body);
   Map decode=jsonDecode(response.body);
   List<Task> task =new List<Task>();
   for(var task in decode['rows']){
    print(task['Task']);
   }

я хочу проанализировать этот массив ..

"rows": [{"Task" {"title": "aamir"}, "CategoryВведите ": {id:" 123 "} {" number ": 3," word ":" SES "}]}

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

Другой ответ достаточно хорош для этого случая, но не оптимален, он будет более эффективен, если вы создадите podo (или pojo), а затем добавите этот метод в класс podo (скажем, его имя Task).

factory Task.fromJson(Map<String, dynamic> json) => new Post(
        title: json["title"];}

с конструктором.

Task({this.title})

И есть много инструментов для создания этого подо онлайн (например, https://app.quicktype.io), тогда вы декодируете его вот так

Map<String, dynamic> map = json.decode(response.body);
Iterable<dynamic> l = map["rows"];
List<Task> tasks= l.map((model) => Task.fromJson(model)).toList(); 

и тогда у вас есть список задач.

0 голосов
/ 29 марта 2019

JSON, который вы добавили, недействителен

Если это JSON, который вы хотите проанализировать -

{
    "rows": [{
        "Task": {
            "title": "aamir"
        },
        "Category Type": {
            "id": "123"
        }
    }]
}

Вы можете разобрать это так -

for(int i = 0 ; i < rows.length ; i++) {
  var task = rows[i]["Task"];
  String title = task["title"];
  String id = rows[i]["Category Type"]["id"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...