2012-01-23 22 views
10

Me pregunto cómo funciona Dart JSON? Más específicamente:Cómo manejar JSON en Dart

  1. ¿Puedo acceder al elemento en un objeto JSON y cuándo, cómo?
  2. ¿Puedo convertir estructuras de datos de Darts como Set y Maps en JSON?
  3. ¿Puedo crear un nuevo JSON, solo llamando a JSON.parse?
  4. ¿Cómo puedo agregar nuevos elementos en un JSON?

Respuesta

14

Usted puede encontrar este post mío interesante: http://www.grobmeier.de/dart-creating-a-dynamic-list-with-dart-php-and-json-20112011.html

Es necesario utilizar el paquete JSON (añadir JSON a pubspec.yaml):

import 'package:json/json.dart'; 

Aquí está la especificación de acuerdo: https://api.dartlang.org/docs/channels/stable/latest/json.html

a sus preguntas:

  1. Puede usar: List result = JSON.parse (jsonData);
  2. Con stringify puede activar, por ejemplo, un Mapa para JSON
  3. Lo siento, no estoy seguro de esta pregunta. Usted podría hacer: JSON.parse ('{key: "value"}')); o algo por el estilo
  4. Es probable que necesita para crear un mapa de su JSON con el análisis sintáctico, a continuación, añadir el elemento y, a continuación, llamar stringify
+5

Con las versiones recientes de Dart (por ejemplo, v0.7.x), debe usar la biblioteca 'dart: convert'. Proporciona los métodos JSON.decode() y JSON.encode() (con un mejor rendimiento). Ver: http://api.dartlang.org/docs/releases/latest/dart_convert.html – CedX

7

como Christian, también hay un puesto similar en mi dartwatch blog que podría ser útil.

+1

Ah sí, normalmente agrego una referencia a esta publicación. Gracias por recordarme. – Christian

+1

Quizás es este un enlace actualizado? http://www.dartlang.org/articles/json-web-service/ –

8

Puede usar la propiedad JSON proporcionada por la biblioteca dart:convert.

import 'dart:convert' show JSON; 

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