1

私のgrailsコントローラーで:

 assert result == [hus:['hus@gmail.com', 'SE', 'on', '9908899876'], vin:['vin@gmail.com', 'SD', 'on', '7765666543']]
println "result is::"+result
println result.getClass() 

    [result:result]  //passing model to view

印刷する:

[hus:[hus@gmail.com, SE, on, 9908899876], vin:[vin@gmail.com, SD, on, 7765666543]]
class java.util.LinkedHashMap

しかし、ビューページからこのハッシュマップを取得し、javascriptからアクセスすると

 $(function(){
    alert('${result}');
});

それは印刷します

 {
  hus=[hus@gmail.com,SE,9902766542],
  vin = [vin@gmail.com, SE,887654433]
  }

これは有効なオブジェクトではありません、有効なオブジェクトではありません: replaced by =)(

{ hus:[hus@gmail.com,SE,9902766542], vin : [vin@gmail.com, SE,887654433] } 

なぜそうなのですか?どうすれば修正できますか?

4

1 に答える 1

2

現在の出力は、データの印刷に使用できる によって生成されますがtoString()Map resultJavaScript に転送するのにはあまり役立ちません。

コントローラーで結果を json に変換する必要があります。

def json = result as JSON

そしてそれをあなたのモデルに返します:

[json : json ]

その後、JQery.parseJSONを使用して Javascript でオブジェクトを作成できます。

var obj = jQuery.parseJSON("${ json.toString() }");
于 2013-09-03T09:50:53.963 に答える