0

json を返す小さな Web サービスを作成しました。返された json 値は次のようになります。

[{"class":"simple.web.service.Stock","id":null,"name":"GOOG","price":123.45},   {"class":"simple.web.service.Stock","id":null,"name":"APPL","price":345.67}]

オブジェクトにidフィールドが含まれていません。それはどこから来たのですか?また、どのように入力する必要がありますか?

また、クラスフィールド標準は含まれていますか?それを含めたくない場合はどうすればよいですか?

4

1 に答える 1

1

属性は、idデフォルトでドメイン オブジェクトに作成されますversion(特に含めないように指定しない限りversion)。両方とも、通常の使用では自動的に設定および維持されます。必要に応じて、ID の作成/入力方法を制御できます -マニュアルを参照してください。

JSON コンストラクターは、セキュリティ上の理由から、デフォルトでは実際の ID またはバージョンを返しません。それらを含めるか、他の項目を含めないようにするには、おそらくカスタム JSON マーシャラーを作成する必要があります。

Bootstrap に次のようなものを含めるだけで、次のようにnameなりpriceます。

import grails.converters.JSON
class BootStrap {
    def init = {servletContext ->
        JSON.registerObjectMarshaller(Stock) {
            def returnArray = [:]
            returnArray['name'] = it.name
            returnArray['price'] = it.price
            return returnArray
    }

}

于 2012-06-14T21:58:23.030 に答える