Как я могу JSON.stringify коллекции в дартс - PullRequest
2 голосов
/ 08 февраля 2012

Как я могу сделать строку JSON из коллекции в dart, как я могу сделать это с помощью Карт.В документах говорится, что я могу передать карту или массив в метод JSON.stringify().Но в Dart нет типа данных Array, и передача коллекции дает мне исключение.

У меня наивный обходной путь, но мне интересно, найдется ли лучший способ сделать это:

    String s = '[';
    bool first=true;

    _set.forEach(function(item){
      if (first) {
        first = false;
      } else {
        s+=',';
      }
      s += JSON.stringify(item);
    });
    s +=']';
    print(s);
    return s;

Ответы [ 2 ]

5 голосов
/ 08 февраля 2012

Передача списка работает для меня:

  • в виртуальной машине Dart, импортирующей dart-sdk/lib/frog/server/dart_json.dart
  • в Dartium, импортирующей json:dart

, используя этоcode:

void main() {
  var list = new List.from(["a","b","c"]);
  print(JSON.stringify(list));
}

печатает этот фрагмент JSON:

["a","b","c"]

Не работает для новых Set.from(...), что ожидается, учитывая, что JSON работает только с картами и списками.

1 голос
/ 28 декабря 2018

В Dart вы можете получить JSON String из Object, используя JsonEncoder 's convert. Вот пример:

import 'dart:convert';

void main() {
  final jsonEncoder = JsonEncoder();

  final collection1 = List.from([1, 2, 3]);
  print(jsonEncoder.convert(collection1)); // prints [1,2,3]

  final collection2 = List.from(['foo', 'bar', 'dart']);
  print(jsonEncoder.convert(collection2)); // prints ["foo","bar","dart"]

  final object = {'a': 1, 'b': 2};
  print(jsonEncoder.convert(object)); // prints {"a":1,"b":2}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...