Last active
May 22, 2016 10:49
-
-
Save varren/35c4ede769499b1290f98e39a2f85589 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class ListTest { | |
public static void main(String[] args) throws JsonProcessingException { | |
ObjectMapper mapper = new ObjectMapper(); | |
List<String> list1 = Arrays.asList("1", "2", "3"); | |
PagedList<String> pageList1 = new PagedList<String>(list1, 1000); | |
System.out.println(mapper.writeValueAsString(pageList1)); | |
List<POJO> list = Arrays.asList(new POJO(1), new POJO(2), new POJO(3)); | |
PagedList<POJO> pageList = new PagedList<POJO>(list, 1000); | |
System.out.println(mapper.writeValueAsString(pageList)); | |
} | |
@JsonFormat(shape = JsonFormat.Shape.OBJECT) | |
public static class PagedList<E> implements List<E> { | |
@JsonProperty | |
private List<E> list; | |
@JsonProperty | |
private long totalRecords; //Getter-setters are added | |
public PagedList(List<E> list) { | |
super(); | |
this.list = list; | |
} | |
public PagedList(List<E> list, long totalRecords) { | |
super(); | |
this.list = list; | |
this.totalRecords = totalRecords; | |
} | |
@JsonIgnore | |
@Override | |
public boolean isEmpty() { | |
return false; | |
} | |
@Override | |
public int size() { | |
return 0; | |
} | |
@Override | |
public boolean contains(Object o) { | |
return false; | |
} | |
@Override | |
public Iterator<E> iterator() { | |
return null; | |
} | |
@Override | |
public Object[] toArray() { | |
return new Object[0]; | |
} | |
@Override | |
public <T> T[] toArray(T[] a) { | |
return null; | |
} | |
@Override | |
public boolean add(E e) { | |
return false; | |
} | |
@Override | |
public boolean remove(Object o) { | |
return false; | |
} | |
@Override | |
public boolean containsAll(Collection<?> c) { | |
return false; | |
} | |
@Override | |
public boolean addAll(Collection<? extends E> c) { | |
return false; | |
} | |
@Override | |
public boolean addAll(int index, Collection<? extends E> c) { | |
return false; | |
} | |
@Override | |
public boolean removeAll(Collection<?> c) { | |
return false; | |
} | |
@Override | |
public boolean retainAll(Collection<?> c) { | |
return false; | |
} | |
@Override | |
public void clear() { | |
} | |
@Override | |
public boolean equals(Object o) { | |
return false; | |
} | |
@Override | |
public int hashCode() { | |
return 0; | |
} | |
@Override | |
public E get(int index) { | |
return null; | |
} | |
@Override | |
public E set(int index, E element) { | |
return null; | |
} | |
@Override | |
public void add(int index, E element) { | |
} | |
@Override | |
public E remove(int index) { | |
return null; | |
} | |
@Override | |
public int indexOf(Object o) { | |
return 0; | |
} | |
@Override | |
public int lastIndexOf(Object o) { | |
return 0; | |
} | |
@Override | |
public ListIterator<E> listIterator() { | |
return null; | |
} | |
@Override | |
public ListIterator<E> listIterator(int index) { | |
return null; | |
} | |
@Override | |
public List<E> subList(int fromIndex, int toIndex) { | |
return null; | |
} | |
} | |
public static class POJO { | |
@JsonProperty | |
private int testVal; | |
public POJO(int testVal) { | |
this.testVal = testVal; | |
} | |
} | |
} |
It works fine using normal ObjectMapper. For using Spring, we need to add some more configuration. Project for reference : Spring-Boot-Jdbc-Template
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Output: