Dart Как разобрать JSON с уникальным ключом и парой значений - PullRequest
0 голосов
/ 17 ноября 2018

Я анализирую объект JSON, содержащий несколько пар ключ-значение, но не уверен, как сделать объекты из JSON ниже. Ключи всегда различаются в зависимости от запроса GET, поэтому я не могу использовать json ['keyname'] как обычно. Какие функции мне понадобятся, чтобы получить список ключей из 'ccwms' и соответствующий список значений (с плавающей запятой)?

    {
  "ccwms": {
    "frc118": 160.8076758518209,
    "frc1255": 15.257951313413884,
    "frc1296": 11.42077882954301,
    "frc7321": -161.58464745359254
  }
}

Ответы [ 3 ]

0 голосов
/ 17 ноября 2018

Эти ключи случайные? Я думаю, что ключи должны быть заданы заранее, потому что json - это сериализация для уже существующего объекта, и структура объекта не может быть случайной надеюсь, я правильно понимаю

должен быть комментарием, но я не могу добавлять комментарии прямо сейчас.

0 голосов
/ 17 ноября 2018

После анализа JSON у вас есть обычный Dart Map со строковыми ключами и некоторыми значениями.Вы можете перебирать карты несколькими способами, например:

for (var key in map.keys) { doSomething(key, map[key]); }

for (var entry in map.entries) { doSomething(entry.key, entry.value); }

map.forEach(doSomething);

( Map.keys , Map.entries , Map.forEach ).Я уверен, что есть больше способов получить доступ ко всем ключам и значениям.

То, что вы делаете с ключами и значениями, зависит только от вас, это всего лишь карта.

0 голосов
/ 17 ноября 2018

Программа Minimal Dart для преобразования строки json:

import 'dart:convert';


main() {
  String source = """{"X":"RRRR","Y":"SSSS","ccwms": {
    "frc118": 160.8076758518209,
    "frc1255": 15.257951313413884,
    "frc1296": 11.42077882954301,
    "frc7321": -161.58464745359254
  }}""";
  dynamic target = JsonDecoder().convert(source);
  print ( source.toString());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...