2012-01-23 5 views
10

Zastanawiam się, w jaki sposób Dart obsługuje JSON? Dokładniej:Jak obsługiwać JSON w Dart

  1. Czy mogę uzyskać dostęp do elementu w obiekcie JSON i kiedy, jak?
  2. Czy mogę konwertować struktury danych Darts, takie jak zestaw i mapy, na JSON?
  3. Czy mogę utworzyć nowy JSON, tylko wywołując JSON.parse?
  4. Jak mogę dodać nowe elementy do JSON?

Odpowiedz

14

Można znaleźć ten post kopalni ciekawego: http://www.grobmeier.de/dart-creating-a-dynamic-list-with-dart-php-and-json-20112011.html

Musisz użyć pakietu JSON (dodaj json do pubspec.yaml):

import 'package:json/json.dart'; 

Oto spec według: https://api.dartlang.org/docs/channels/stable/latest/json.html

na pytania:

  1. Możesz użyć: List result = JSON.parse (jsonData);
  2. Przy pomocy stringify można na przykład zamienić mapę na JSON
  3. Przykro mi, ale nie jestem pewien na temat tego pytania. Możesz zrobić: JSON.parse ('{key: "value"}')); lub coś w tym
  4. prawdopodobnie trzeba utworzyć mapę z Twojego JSON z parse, a następnie dodaj swój przedmiot, a następnie zadzwonić stringify
+5

W najnowszej wersji gry Dart (np. V0.7.x) należy użyć biblioteki 'dart: convert'. Zapewnia metody JSON.decode() i JSON.encode() (o lepszej wydajności). Zobacz: http://api.dartlang.org/docs/releases/latest/dart_convert.html – CedX

7

jak Christian, istnieje również podobny post na moim dartwatch blog które mogłyby być przydatny.

+1

Ach tak, zazwyczaj dodaję odnośnik do tego posta. Dzięki za przypomnienie. – Christian

+1

Może to jest zaktualizowany link? http://www.dartlang.org/articles/json-web-service/ –

8

Można użyć właściwości JSON dostarczonej przez bibliotekę dart:convert.

import 'dart:convert' show JSON; 

main() { 
    var encoded = JSON.encode([1, 2, { "a": null }]); 
    var decoded = JSON.decode('["foo", { "bar": 499 }]'); 
}