2012-02-08 8 views
2

マップで行うことができるので、ダーツのコレクションからJSON文字列を作成するにはどうすればよいですか。ドキュメントでは、JSON.stringify()メソッドにマップまたは配列を渡すことができます。しかし、DartにArrayデータ型はなく、コレクションを渡すことで例外が発生します。ダーツのコレクションをJSON.stringifyするには

私は素朴な回避策をしましたが、これを行うには良い方法があるでしょう場合、私は疑問に思う:リストを渡す

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

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

答えて

3

は私の作品:ダーツVMのインポートで

  • これを使用してjson:dart

をインポートDartiumでdart-sdk/lib/frog/server/dart_json.dart

  • コード:

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

    プリントこのJSONスニペット:

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

    はJSONのみマップとリストに扱うことを考えると、期待されている新しいSet.from(...)では動作しません。

  • +0

    なぜあなたはSetが動作しないと思いますか? ListとSetの両方がコレクションで、Setを配列に変換するのが難しい場合、または配列のJSONパターンを使用してStringに変換する場合( '[item.toString、item.toString()']) –

    +0

    I JSONにはSetの概念がないため、これをJSONに変換するとSetセマンティクスが失われるためです。もちろん、コレクションをJSONにストリング化することは簡単ですが、これはJSONとDartの間の現在の1:1マッピングを破ります。私は、stringart()のSet/Collectionサポートは、Dartが若すぎるためにまだ欠けているものだと思っています - もし問題があれば(http://code.google.com/p/dart/issues/)あなたはこれをスピードアップしたい:) –

    関連する問題