Просто проверьте, работает ли это для вас.
Ниже ваш json, который я проанализировал локально:
{
"type": "Point",
"coordinates": [
[
16.990586757110702,
52.336268037215298
]
]
}
это класс модели, который я создал на основе вас json.
// To parse this JSON data, do
//
// final point = pointFromJson(jsonString);
import 'dart:convert';
Point pointFromJson(String str) => Point.fromJson(json.decode(str));
String pointToJson(Point data) => json.encode(data.toJson());
class Point {
String type;
List<List<double>> coordinates;
Point({
this.type,
this.coordinates,
});
factory Point.fromJson(Map<String, dynamic> json) => Point(
type: json["type"],
coordinates: List<List<double>>.from(json["coordinates"].map((x) => List<double>.from(x.map((x) => x.toDouble())))),
);
Map<String, dynamic> toJson() => {
"type": type,
"coordinates": List<dynamic>.from(coordinates.map((x) => List<dynamic>.from(x.map((x) => x)))),
};
}
позже я проанализировал json и добавил их в список:
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:sample_project_for_api/model.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Flutter Demo',
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
Point yourpoint = new Point();
bool _isLoading = false;
List<double> coordinates = List();
@override
void initState() {
super.initState();
yourMethod();
}
yourMethod() async {
String jsonString = await loadFromAssets();
final point = pointFromJson(jsonString);
yourpoint = point;
for (int i = 0; i < yourpoint.coordinates.length; i++) {
for (int j = 0; j < yourpoint.coordinates[i].length; j++) {
print(yourpoint.coordinates[i][j]);
coordinates.add(yourpoint.coordinates[i][j]);
}
}
for(int i=0;i<coordinates.length;i++)
{
print('Your cordinates are $i :${coordinates[i]}');
}
}
Future<String> loadFromAssets() async {
return await rootBundle.loadString('json/parse.json');
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('title'),
),
body: Text('sample'),
);
}
}
, дайте мне знать, если это работает.