Flutter JSON数据可视化插件interactive_json_preview的使用

发布于 1周前 作者 eggper 来自 Flutter

Flutter JSON数据可视化插件interactive_json_preview的使用

interactive_json_preview 是一个用于在Flutter应用中以交互方式显示JSON数据的插件,它可以帮助用户更直观地查看复杂的JSON结构。该插件支持折叠和展开JSON对象中的复杂部分,从而提高可读性。

安装 💻

要安装此插件,请执行以下命令:

dart pub add interactive_json_preview

导入

在你的Dart文件中导入该插件:

import 'package:interactive_json_preview/interactive_json_preview.dart';

示例 Demo

下面是一个完整的示例代码,展示了如何在Flutter应用中使用 InteractiveJsonPreview 组件来展示不同类型的JSON数据(如Map、List和String)。

示例代码

import 'package:flutter/material.dart';
import 'package:interactive_json_preview/interactive_json_preview.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      title: 'Material App',
      home: HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  const HomePage({
    super.key,
  });

  @override
  Widget build(BuildContext context) {
    return DefaultTabController(
      length: 3,
      child: Scaffold(
        appBar: AppBar(
          title: const Text('Interactive JSON preview'),
        ),
        body: Column(
          children: [
            const TabBar(tabs: [
              Tab(
                text: 'MAP',
              ),
              Tab(
                text: 'LIST',
              ),
              Tab(
                text: 'STRING',
              ),
            ]),
            Expanded(
                child: TabBarView(children: [
              InteractiveJsonPreview(data: data),
              InteractiveJsonPreview(data: [data, data, data]),
              const InteractiveJsonPreview(data: 'Interactive JSON preview'),
            ]))
          ],
        ),
      ),
    );
  }
}

final data = {
  "author": {
    "name": "Yeikel",
    "lastName": "Uriarte",
    "github_username": "@yeikel16",
    "age": 24,
    "developer": true,
    "height": 186.5,
    "projects": [
      {
        "owner": {
          "username": "yeikel16",
          "avatar_url": "https://avatars.githubusercontent.com/u/26438532?v=4",
        },
        "id": 447347774,
        "node_id": "R_kgDOGqn8Pg",
        "name": "deta-dart",
        "url": "https://api.github.com/users/yeikel16",
        "created_at": "2022-01-12T19:37:58Z",
        "updated_at": "2024-05-08T07:44:11Z",
        "pushed_at": "2022-12-30T00:27:01Z",
        "git_url": "git://github.com/yeikel16/deta-dart.git",
        "ssh_url": "git@github.com:yeikel16/deta-dart.git",
        "clone_url": "https://github.com/yeikel16/deta-dart.git",
        "svn_url": "https://github.com/yeikel16/deta-dart",
        "license": {
          "key": "gpl-3.0",
          "name": "GNU General Public License v3.0",
          "spdx_id": "GPL-3.0",
          "url": "https://api.github.com/licenses/gpl-3.0",
          "node_id": "MDc6TGljZW5zZTk="
        }
      }
    ]
  },
};

说明

  • Map: 显示了一个复杂的JSON对象。
  • List: 显示了包含多个相同JSON对象的列表。
  • String: 显示了一个简单的字符串。

通过这种方式,您可以轻松地在Flutter应用中展示各种类型的JSON数据,并提供用户友好的交互体验。

Bugs or Requests

如果您发现任何问题或希望添加新功能,请随时在 GitHub 上提交问题或请求。欢迎贡献代码!


更多关于Flutter JSON数据可视化插件interactive_json_preview的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter JSON数据可视化插件interactive_json_preview的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中使用interactive_json_preview插件来可视化JSON数据的示例代码。这个插件允许你以交互式的方式展示JSON数据,非常适合调试和展示用途。

首先,你需要在你的pubspec.yaml文件中添加该插件的依赖项:

dependencies:
  flutter:
    sdk: flutter
  interactive_json_preview: ^0.0.4  # 请检查最新版本号

然后,运行flutter pub get来安装依赖项。

接下来,在你的Flutter项目中,你可以创建一个页面来展示JSON数据。以下是一个完整的示例,包括如何构建UI和加载JSON数据:

import 'package:flutter/material.dart';
import 'package:interactive_json_preview/interactive_json_preview.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter JSON Visualization',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: JsonPreviewScreen(),
    );
  }
}

class JsonPreviewScreen extends StatefulWidget {
  @override
  _JsonPreviewScreenState createState() => _JsonPreviewScreenState();
}

class _JsonPreviewScreenState extends State<JsonPreviewScreen> {
  // 示例JSON数据
  final String jsonData = '''
  {
    "name": "John Doe",
    "age": 30,
    "email": "john.doe@example.com",
    "address": {
      "street": "123 Main St",
      "city": "Anytown",
      "country": "USA"
    },
    "phoneNumbers": [
      {"type": "home", "number": "212 555-1234"},
      {"type": "work", "number": "646 555-4567"}
    ]
  }
  ''';

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('JSON Visualization'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: InteractiveJsonPreview(
          json: jsonData,
          theme: InteractiveJsonPreviewThemeData(
            baseColor: Colors.blue,
            baseBackgroundColor: Colors.white,
            highlightColor: Colors.lightBlueAccent,
            textColor: Colors.black,
            nodePadding: 8.0,
            nodeRadius: 8.0,
          ),
        ),
      ),
    );
  }
}

在这个示例中,我们做了以下几件事:

  1. 引入必要的包:引入了flutterinteractive_json_preview包。
  2. 定义主应用:在MyApp类中,我们创建了一个MaterialApp,并将JsonPreviewScreen作为主页。
  3. 创建JSON预览屏幕:在JsonPreviewScreen类中,我们定义了一个状态类_JsonPreviewScreenState,并在其中定义了一个示例JSON数据。
  4. 构建UI:在build方法中,我们使用ScaffoldPadding来布局我们的页面,并使用InteractiveJsonPreview小部件来展示JSON数据。
  5. 自定义主题:我们还通过InteractiveJsonPreviewThemeData自定义了JSON预览的主题,包括颜色、节点填充和圆角半径等。

运行这个代码后,你应该会看到一个带有交互式JSON数据可视化的页面。你可以根据需要调整JSON数据和主题设置。

回到顶部