2013-07-08 5 views
7

umwandeln Ich verwende die parse()-Funktion, die in dart:json bereitgestellt wird. Gibt es eine Möglichkeit, die geparsten Daten mit parse() zu transformieren? Ich denke an etwas Ähnliches wie die reviver Argument beim Parsen von JSON mit JavaScript:Daten beim Analysieren einer JSON-Zeichenfolge mit Dart

JSON.parse(text[, reviver]) 

Antwort

7

Die parse() Funktion in dart:json nimmt einen Rückruf als arg, die Sie verwenden können, um die analysierten Daten zu transformieren. Beispielsweise möchten Sie möglicherweise ein Datumsfeld als DateTime-Objekt und nicht als eine Liste von Zahlen, die das Jahr, den Monat und den Tag darstellen, ausdrücken. Geben Sie eine "reviver" -Funktion als zweites Argument zum Parsen an.

Diese Funktion einmal für jedes Objekt oder eine Liste Eigenschaft aufgerufen wird analysiert, und der Rückgabewert der Erneuerer Funktion wird anstelle des analysierten Wert verwendet:

import 'dart:json' as json; 

void main() { 
    var jsonPerson = '{"name" : "joe", "date" : [2013, 10, 3]}'; 

    var person = json.parse(jsonPerson, (key, value) { 
    if (key == "date") { 
     return new DateTime(value[0], value[1], value[2]); 
    } 
    return value; 
    }); 

    person['name'];    // 'joe' 
    person['date'] is DateTime; // true 
} 
Verwandte Themen