2012-12-18 19 views

cevap

2

birçok değişiklik aşağıdaki kodu (# 30104) En son adapte Alexandre Ardhuin yanıtıdır, bu yıl tarafından yapıldı Dart Sdk

import "dart:convert"; 
import "dart:js" as js; 

convert(js.JsObject object) 
{ 
    return JSON.decode(js.context['JSON'].callMethod("stringify", [ object ])); 
} 
3

Javascript bağlamındaki Javascript yöntemiyle JSON.stringify() yöntemini kullanabilirsiniz.

Future getManifest() { 
    var completer = new Completer(); 

    js.scoped(() { 
    var chrome = js.context.chrome; 
    var manifest_proxy = chrome.runtime.getManifest(); 
    var manifest_string = js.context.JSON.stringify(manifest_proxy); 
    var manifest = JSON.parse(manifest_string); 
    logger.fine("manifest_string = $manifest_string"); 
    completer.complete(manifest); 
    }); 

    return completer.future;  
} 

Aşağıdakileri konsola yazdırır ve tamamlayıcıyı dart Haritasına gönderir.

manifest_string = {"app":{"background":{"scripts":["main.js"]}},"manifest_version":2,"minimum_chrome_version":"23","name":"chrome.dart - test","version":"1"} 
+1

“Future” kullanmanız gerekmez. –

+0

Nice, bu nedenle kapsam dışı bir Gelecek dönüşü gerektirmez. Bu kütüphanede, geleceğin krom tarafından sağlanan çağrıların çoğuna desen olarak kullanmaya başladım. * Apis. Eğer durum buysa, geri arama gerektiren yöntemler için sadece Futures'a ihtiyacım var. http://goo.gl/x2H2K –

4

Sen bir Dart JSON için bir javascript JSON dönüştürebilirsiniz:

import 'dart:json'; 
import 'package:js/js.dart' as js; 

convert(js.Proxy jsonProxy) => JSON.parse(js.context.JSON.stringify(jsonProxy)); 
API
İlgili konular