Flutter 颤振本地json服务
我正在开发一个问答游戏,我需要应用本地json搜索服务,我在应用变量方面有困难。我已经学习dart几个星期了,在屏幕上显示json结果的部分遇到了一个错误 我想要一些带有本地json的服务示例,或者一些用于继续开发的示例。首先,谢谢你 代码示例:Flutter 颤振本地json服务,flutter,dart,Flutter,Dart,我正在开发一个问答游戏,我需要应用本地json搜索服务,我在应用变量方面有困难。我已经学习dart几个星期了,在屏幕上显示json结果的部分遇到了一个错误 我想要一些带有本地json的服务示例,或者一些用于继续开发的示例。首先,谢谢你 代码示例: import 'package:flutter/material.dart'; import 'package:flutter/services.dart' show rootBundle; import 'dart:async'; import 'd
import 'package:flutter/material.dart';
import 'package:flutter/services.dart' show rootBundle;
import 'dart:async';
import 'dart:convert';
class GameService extends StatefulWidget {
@override
_GameServiceState createState() => _GameServiceState();
}
class _GameServiceState extends State<GameService> {
List perguntas;
List<dynamic> perguntaCurrent;
Future<List> fetchPerguntas() async {
var response = await rootBundle.loadString('assets/api/data.json');
var perguntas = json.decode(response);
return perguntas;
}
void getPergunta() async {
var perguntaCurrent = await fetchPerguntas();
var current = perguntaCurrent[10];
setState(() {
perguntaCurrent = current;
});
}
@override
void initState() {
super.initState();
this.getPergunta();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Text(this.perguntaCurrent['pergunta']),
Text(this.perguntaCurrent['versiculo'])
],
),
);
}
}
最好是在尝试使用JSON之前将其解析为对象。Dart有一个JSON生成器,或者您可以使用这样的在线服务:您最好在尝试使用JSON之前将其解析为一个对象。Dart有一个JSON生成器,或者您可以使用这样的在线服务:问题来自以下几行:
Text(this.perguntaCurrent['pergunta']),
文本(此.perguntaCurrent['versiculo'])
或者更具体地说,这些位:
this.perguntaCurrent['pergunta']
这个.perguntaCurrent['versiculo']
您正试图使用字符串键访问perguntaCurrent
。但是,您已经将perguntaCurrent
声明为List
,它只接受int
键
(我不知道传入JSON的结构,也不知道您试图用perguntaCurrent做什么,我不知道您可以做什么。不过,希望这些信息足以让您找到自己的解决方案。)问题来自以下几行:
Text(this.perguntaCurrent['pergunta']),
文本(此.perguntaCurrent['versiculo'])
或者更具体地说,这些位:
this.perguntaCurrent['pergunta']
这个.perguntaCurrent['versiculo']
您正试图使用字符串键访问perguntaCurrent
。但是,您已经将perguntaCurrent
声明为List
,它只接受int
键
(我不知道传入JSON的结构,也不知道你想用
perguntaCurrent
做什么,我不知道你能做什么。不过,希望这些信息足以让你找到自己的解决方案。)更改列出perguntaCurrent代码>至映射过电流代码>更改当前列表代码>至映射过电流代码>错误是什么?代码的哪个部分抛出了错误?您好,在这部分文本(this.perguntaCurrent['pergunta'])中,编译器消息:lib/services/services.dart:44:32:错误:“String”类型的值不能分配给“int”类型的变量。Text(this.perguntaCurrent['pergunta']),听起来错误可能是专门来自this.perguntaCurrent['pergunta']
。您确定perguntaCurrent
是一个Map
而不是List
?这部分变量current=perguntaCurrent[10];带来一个json对象错误是什么,代码的哪个部分抛出了错误?嗨,在这部分文本中(this.perguntaCurrent['pergunta']),编译器消息:lib/services/services.dart:44:32:error:String类型的值不能分配给int类型的变量。Text(this.perguntaCurrent['pergunta']),听起来错误可能是专门来自this.perguntaCurrent['pergunta']
。您确定perguntaCurrent
是一个Map
而不是List
?这部分变量current=perguntaCurrent[10];带一个jsonobject@SHARKDEV我仍然不知道你想做什么,所以我不知道该推荐什么。我所能说的就是你试图把一个列表
当作一个地图
来对待,但这是行不通的。@SHARKDEV我仍然不确定你想做什么,所以我不知道该推荐什么。我所能说的是,你试图把一个列表
当作一个地图
来对待,这是行不通的。
[
{
"id":1,
"pergunta":"O que Abel ofereceu a Deus?",
"dificuldade":1,
"respostas":[
"Verduras",
"Leite",
"Frutas",
"Uma ovelha"
],
"certa":4,
"referencia":"Gênesis 4:4",
"versiculo":"Abel, por sua vez, trouxe as partes gordas das primeiras crias do seu rebanho. O Senhor aceitou com agrado Abel e sua oferta..."
},
{
"id":2,
"pergunta":"Quantas pessoas entraram na Arca de Noé?",
"dificuldade":1,
"respostas":[
"9 pessoas",
"7 pessoas",
"6 pessoas",
"8 pessoas"
],
"certa":4,
"referencia":"Gênesis 6:10 e 7:7",
"versiculo":"E gerou Noé três filhos: Sem, Cão e Jafé. Noé entrou na arca, e com ele seus filhos, sua mulher e as mulheres de seus filhos, por causa das águas do dilúvio."
},
]