从Json文件加载和读取数据

时间:2019-05-15 04:40:51

标签: dart flutter

我创建了一个简单的应用程序,它从json文件中获取标记数据并绘制它们。 以下代码是从data.json获取数据并将其添加到标记列表中。

我有问题。我无法从json文件中获取数据并将其添加到标记列表中。我该怎么办?

我的main.dart代码

class MapSample extends StatefulWidget {
  @override
  State<MapSample> createState() => MapSampleState();
}

class MapSampleState extends State<MapSample> {
  @override
  void initState() {
    var location = Location();
    FutureBuilder(
        future:
            DefaultAssetBundle.of(context).loadString('assets/data.json'),
        builder: (context, snapshot) {
          // Decode the JSON
          var new_data = json.decode(snapshot.data.toString());
          for (var i = 0; i < new_data.length; i++) {
            location = Location(
              id: new_data[i]['id'],
              lat: new_data[i]['x'],
              long: new_data[i]['y'],
            );
            locations.add(location);
            //print(location.lat);
          }
        });
    super.initState();
  }
}

我的data.json

[{
    "rownum": 1,
    "id": "E3E0D2C5-CB82-4AF3-8D5D-4CD323560F59",
    "x": 10.99803453,
    "y": 106.65676933,
  }, {
    "rownum": 2,
    "id": "5FFB6736-7D1F-4B40-A397-32EB3128BC30",
    "x": 10.99793271,
    "y": 106.65666751,
  },

2 个答案:

答案 0 :(得分:0)

尝试一下。

1)您必须在assests中添加data.json文件。

2)然后添加到pubspec.yaml文件中。

资产:     -资产/data.json

3)然后在下面的代码中添加该代码。

String jsonData =等待DefaultAssetBundle.of(context).loadString(“ assets / data.json”); 最终的jsonResult = json.decode(jsonData);

答案 1 :(得分:0)

我认为这就是您想要的。

printf '%s\n' \
    sed \
    -i \
    's/#!\/bin\/bash/#!\/bin\/bash\n\/bootstrap_mongo_on_k8s.sh \&\n/' /usr/local/bin/docker-entrypoint.sh \
  | jq -Rnc '[inputs]'