如何访问 Json 数据

Posted

技术标签:

【中文标题】如何访问 Json 数据【英文标题】:How to access Json data's 【发布时间】:2021-10-26 15:32:35 【问题描述】:

我有一些 Json 数据。但是我不能在不写第一个键名的情况下访问它的内部。 Json 数据的链接是https://api.genelpara.com/embed/borsa.json 我想把它们放到Listview。我怎样才能把它们?如果我编写类似代码,我只能访问“satis”键和值并在 Listview 上显示,但我想将“ALGYO”键作为值访问并在 Listview 上显示。

child: Center(child: Text(' $snapshot.data['ALGYO']['satis']'))

【问题讨论】:

key为ALGYO没有数据!!! 我可以访问 ALGYO 密钥作为值吗? JSON 中没有 ALGYO 的值!! 对不起!!我编辑了api链接 【参考方案1】:

您需要从 JSON 中获取 keys(例如 ALGYOARZUM),然后您才能访问其中的数据。试试下面的代码,你可以很容易的在你想要的地方添加alisdegisim

import 'package:flutter/material.dart';

void main() 
  runApp(const MyApp());


class MyApp extends StatelessWidget 
  const MyApp(Key? key) : super(key: key);

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) 
    return MaterialApp(
      title: 'ListView',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const HomePage(),
    );
  


class HomePage extends StatefulWidget 
  const HomePage(Key? key) : super(key: key);

  @override
  State<HomePage> createState() => _HomePageState();


class _HomePageState extends State<HomePage> 
  final data = 
    'ALGYO': 'satis': "20.18", 'alis': "20.16", 'degisim': "-1,46",
    'ARZUM': 'satis': "17.68", 'alis': "17.68", 'degisim': "-20,93",
    'ACSEL': 'satis': "16.41", 'alis': "16.41", 'degisim': "-2,32",
    'ADANA': 'satis': "12.19", 'alis': "12.19", 'degisim': "0,00",
    'ADBGR': 'satis': "8.62", 'alis': "8.62", 'degisim': "0,00",
    'ADEL': 'satis': "0.0476", 'alis': "0.0476", 'degisim': "-1,04",
    'ADESE': 'satis': "1.2", 'alis': "1.2", 'degisim': "-1,64",
    'ADNAC': 'satis': "2.09", 'alis': "2.09", 'degisim': "0,00",
    'AEFES': 'satis': "21.46", 'alis': "21.46", 'degisim': "-1,29",
    'AFYON': 'satis': "3.63", 'alis': "3.63", 'degisim': "-0,82",
  ;

  @override
  Widget build(BuildContext context) 
    return Scaffold(
      appBar: AppBar(
        title: Text('ListView'),
      ),
      body: ListView.builder(
        itemCount: data.length,
        itemBuilder: (BuildContext context, int index) 
          // this will be the key for the current item
          String key = data.keys.elementAt(index);
          // here you can see how to access "satis" under
          // current key
          return ListTile(
              title: Text("$key"), subtitle: Text(data[key]!["satis"]!));
        ,
      ),
    );
  

【讨论】:

如何将 api 数据转换为您显示的最终数据

以上是关于如何访问 Json 数据的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PHP 从 JSON 中提取和访问数据?

如何访问 JSON 格式的 .har 文件的数据?

如何访问 NSMutableArray 中的 JSON 数据?

如何在不输入对象名称的情况下访问对象的数据?- JSON

如何访问json数组中的数据

如何访问上传的 JSON 文件的数据?