Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

जैक्सन वसंत के इंटरफेस की सूची के साथ वस्तु deserialize

मुझे लगता है कि आपको एक कस्टम deserializer जोड़ने की जरूरत है

public class UserAccountAuthenticationSerializer extends JsonDeserializer<UserAccountAuthentication> {

@Override
public UserAccountAuthentication deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
        throws IOException {

    UserAccountAuthentication userAccountAuthentication = new UserAccountAuthentication();

    ObjectCodec oc = jsonParser.getCodec();
    JsonNode node = oc.readTree(jsonParser);
    userAccountAuthentication.setAuthenticated(node.get("authenticated").booleanValue());

    Iterator<JsonNode> elements = node.get("authorities").elements();
    while (elements.hasNext()) {
        JsonNode next = elements.next();
        JsonNode authority = next.get("authority");
        userAccountAuthentication.getAuthorities().add(new SimpleGrantedAuthority(authority.asText()));
    }
    return userAccountAuthentication;
}

}

यह मेरा जेसन है

{"authenticated":true,"authorities":[{"authority":"role1"},{"authority":"role2"}],"details":null,"principal":null,"credentials":null,"name":null}

फिर अपने POJO में सबसे ऊपर

@JsonDeserialize(using = UserAccountAuthenticationSerializer.class)
public class UserAccountAuthentication  implements Authentication {

ये रहा परीक्षण

@Test
public void test1() throws IOException {

UserAccountAuthentication userAccountAuthentication = new UserAccountAuthentication();
userAccountAuthentication.setAuthenticated(true);
userAccountAuthentication.getAuthorities().add(new SimpleGrantedAuthority("role1"));
userAccountAuthentication.getAuthorities().add(new SimpleGrantedAuthority("role2"));

String json1 = new ObjectMapper().writeValueAsString(userAccountAuthentication);
UserAccountAuthentication readValue = new ObjectMapper().readValue(json1, UserAccountAuthentication.class);
String json2 = new ObjectMapper().writeValueAsString(readValue);
assertEquals(json1, json2);

}




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. रेडिस सहयोगी सरणी कैसे स्टोर करें? सेट या हैश या सूची?

  2. रेडिस - मास्टर दास संबंध में मक्खी पर CONFIG SET का उपयोग करना

  3. सेट के लिए रेडिस के स्कोर और रैंकिंग सुविधाओं के लिए केस का उपयोग करें

  4. रेल थ्रेड के भीतर एक चर तक पहुंचना

  5. Docker-compose , वैसे भी एक redis.conf फ़ाइल निर्दिष्ट करने के लिए?