Skip to content

Custom Serializer Not Used Inside Map #40

@kaerfredoc

Description

@kaerfredoc

package com.app.security

class AuthUser {
String username
String password
}

package com.app.utils.gson

import com.app.security.AuthUser
import com.google.gson.JsonElement
import com.google.gson.JsonObject
import com.google.gson.JsonSerializationContext
import com.google.gson.JsonSerializer

import java.lang.reflect.Type

class AuthUserSerializer implements JsonSerializer {

public AuthUserSerializer() {
super();
}

JsonElement serialize(AuthUser value, Type type, JsonSerializationContext context) {
final JsonObject jsonObj = new JsonObject();

['id', 'username'].each {
  jsonObj.add(it, context.serialize(value[it]))
}

return jsonObj;

}
}

...In BootStrap...

def gsonBuilder
def init = { servletContext ->
gsonBuilder.registerTypeAdapter(AuthUser.class, new AuthUserSerializer());
}

...In Controller...
def authUser = new AuthUser(username:"someuser", password:"NOT SUPPOSED TO SHOW").save()

// Works fine
render (authUser as GSON) // = {"id":2, "username":"someuser"}

// Serializer not leveraged
render ([profile:memberService.currentMember] as GSON) // = {"profile":{"id":2, "username":"someuser", "password":"NOT SUPPOSED TO SHOW"}}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions