如何在flutter中从JSON文件中获取数据

Dev*_*er 5 dart flutter

我有这个 JSON 文件,我想获取“名称”字段,但我对 JSON 文件没有更好的理解,任何人都可以解释一下我如何读取这个 JOSN 文件格式以及如何访问“名称”字段进行打印。我尝试了多个代码,但没有成功。

{
    "stream": {
        "tv": [{
            "name": "Tv",
            "description": "Tv",
            "url": "this is the url",
            "image": "imagelink",

        }]
    }
}
Run Code Online (Sandbox Code Playgroud)

这是代码

import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;

void main() => runApp(HomePage());

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
  List data=[];
  @override
  void initState() {
    fetchData();
    super.initState();
  }

  void fetchData() async {
    final response =
    await http.get('Link here');
    if (response.statusCode == 200) {
      setState(() {
        data = json.decode(response.body);
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Center(
        child: Text(data[0]["stream"]["adomtv"][0]["name"]),// how can I access given Json fields here 
      )
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

小智 1

看看您有需要List data=[];整数值索引的列表类型数据,因此如果您将其作为字符串,您可以按照您想要的方式使用。如果你想像这样访问它并且你也处理 JSON 而不是稍微转换 JSON

{
    "stream": {
        "tv": [{
            "name": "Tv",
            "description": "Tv",
            "url": "this is the url",
            "image": "imagelink",

        }]
    }
}
Run Code Online (Sandbox Code Playgroud)

将其转换为

[
{
    "stream": {
        "tv": [{
            "name": "Tv",
            "description": "Tv",
            "url": "this is the url",
            "image": "imagelink",

        }]
    }
}
]
Run Code Online (Sandbox Code Playgroud)

现在您可以按照您想要的方式访问。这对你有用data[0]["stream"]["adomtv"][0]["name"]