का उपयोग कर सूची के रूप में मानचित्र को क्रमबद्ध करने के लिए कैसे करें मैप के मूल्यों की सूची के रूप में मानचित्र को एक संपत्ति को क्रमबद्ध कैसे कर सकता हूं? मैं गेटटर पर @JsonSerialize(using=...)
एनोटेशन का उपयोग करके अन्य सरल रूपांतरण करने में सक्षम हूं। हालांकि, मुझे यकीन नहीं है कि कोई ऐसा करने के लिए मौजूद है जो मैं करना चाहता हूं।जैक्सन
Q
जैक्सन
8
A
उत्तर
7
हम कुछ इसी तरह, हमारे मामले में हम एक स्वनिर्धारित @JsonSerialize
इस्तेमाल किया के रूप में आप टिप्पणी की जरूरत है, और यह बेवकूफ सरल था: इसे का उपयोग
public class MyCustomSerializer extends JsonSerializer<Map<?, ?>> {
@Override
public void serialize(final Map<?, ?> value, final JsonGenerator jgen, final SerializerProvider provider)
throws IOException, JsonProcessingException {
jgen.writeObject(value.values());
}
}
कोड:
import java.io.IOException;
import java.util.Collections;
import java.util.Map;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializerProvider;
import org.codehaus.jackson.map.annotate.JsonSerialize;
public class JacksonTest {
public static class ModelClass {
private final Map<String, String> map;
public ModelClass(final Map<String, String> map) {
super();
this.map = map;
}
@JsonSerialize(using = MyCustomSerializer.class)
public Map<String, String> getMap() {
return map;
}
}
public static void main(final String[] args) throws JsonGenerationException, JsonMappingException, IOException {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.writeValue(System.out, new ModelClass(Collections.singletonMap("test", "test")));
}
}
3
मैं डिफ़ॉल्ट का उपयोग कर कार्यान्वित Serializer उन मानों को संभालने के लिए जो केवल स्ट्रिंग नहीं हैं:
@Override
public void serialize(final Map<Long, ?> value, final JsonGenerator jgen, final SerializerProvider provider) throws IOException,
JsonProcessingException {
provider.defaultSerializeValue(value.values(), jgen);
}
संपादित करें: जैसा कि राडू सिमियोनसेकू द्वारा उल्लिखित है, यह समाधान केवल पोजोस के मानचित्रों के लिए काम करता है।
संबंधित मुद्दे
- 1. जैक्सन
- 2. जैक्सन
- 3. जैक्सन
- 4. जैक्सन
- 5. जैक्सन
- 6. जैक्सन
- 7. जैक्सन
- 8. जैक्सन
- 9. जैक्सन
- 10. जैक्सन
- 11. जैक्सन
- 12. जैक्सन
- 13. जैक्सन
- 14. जैक्सन
- 15. जर्सी और जैक्सन - जैक्सन आउटपुट
- 16. जैक्सन-कोर-एएसएल और जैक्सन-कोर-एलजीपीएल
- 17. स्लेश जैक्सन
- 18. जैक्सन ऑब्जेक्टमैपर?
- 19. जैक्सन Deserialization
- 20. जैक्सन ऑब्जेक्टमैपर
- 21. जैक्सन - नियंत्रित परिशुद्धता
- 22. जैक्सन: मानचित्र का deserialization
- 23. जैक्सन - गतिशील रूप से
- 24. जैक्सन + बिल्डर पैटर्न?
- 25. जैक्सन: सशर्त क्षेत्र
- 26. जैक्सन को इनपुट JSON
- 27. फोर्स जैक्सन एनोटेशन
- 28. जैक्सन हैंडलिंग लपेटा तत्व
- 29. जैक्सन जटिल सूची क्रमबद्धता
- 30. जैक्सन - आवश्यक संपत्ति?
हाँ, आपने किया, और यह आपके मामले में काम कर सकता है, लेकिन यह नक्शे और संग्रह के साथ काम नहीं करता है, लेकिन केवल pojos के साथ। दुर्भाग्यवश कोई प्रदाता.defaultSerializeMap नहीं है –