Skip to content

Commit 4a61383

Browse files
committed
Modify Json View
1 parent 19a558b commit 4a61383

File tree

9 files changed

+73
-42
lines changed

9 files changed

+73
-42
lines changed

jackson/src/test/java/org/baeldung/jackson/jsonview/Application.java

Lines changed: 0 additions & 14 deletions
This file was deleted.

jackson/src/test/java/org/baeldung/jackson/jsonview/Item.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@ public class Item {
1010
public String itemName;
1111

1212
@JsonView(Views.Internal.class)
13-
public User owner;
13+
public String ownerName;
1414

1515
public Item() {
1616
super();
1717
}
1818

19-
public Item(final int id, final String itemName, final User owner) {
19+
public Item(final int id, final String itemName, final String ownerName) {
2020
this.id = id;
2121
this.itemName = itemName;
22-
this.owner = owner;
22+
this.ownerName = ownerName;
2323
}
2424

2525
public int getId() {
@@ -30,7 +30,7 @@ public String getItemName() {
3030
return itemName;
3131
}
3232

33-
public User getOwner() {
34-
return owner;
33+
public String getOwnerName() {
34+
return ownerName;
3535
}
3636
}

jackson/src/test/java/org/baeldung/jackson/jsonview/ItemManager.java

Lines changed: 0 additions & 10 deletions
This file was deleted.

jackson/src/test/java/org/baeldung/jackson/jsonview/User.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import com.fasterxml.jackson.annotation.JsonView;
44

55
public class User {
6-
@JsonView(Views.Public.class)
76
public int id;
87

98
@JsonView(Views.Public.class)

jackson/src/test/java/org/baeldung/jackson/test/JacksonJsonViewTest.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.junit.Test;
1515

1616
import com.fasterxml.jackson.core.JsonProcessingException;
17+
import com.fasterxml.jackson.databind.MapperFeature;
1718
import com.fasterxml.jackson.databind.ObjectMapper;
1819
import com.fasterxml.jackson.databind.ser.BeanSerializerFactory;
1920
import com.fasterxml.jackson.databind.ser.SerializerFactory;
@@ -25,16 +26,17 @@ public void whenUseJsonViewToSerialize_thenCorrect() throws JsonProcessingExcept
2526
final User user = new User(1, "John");
2627

2728
final ObjectMapper mapper = new ObjectMapper();
29+
mapper.disable(MapperFeature.DEFAULT_VIEW_INCLUSION);
30+
2831
final String result = mapper.writerWithView(Views.Public.class).writeValueAsString(user);
2932

3033
assertThat(result, containsString("John"));
31-
assertThat(result, containsString("1"));
34+
assertThat(result, not(containsString("1")));
3235
}
3336

3437
@Test
3538
public void whenUsePublicView_thenOnlyPublicSerialized() throws JsonProcessingException {
36-
final User owner = new User(1, "John");
37-
final Item item = new Item(2, "book", owner);
39+
final Item item = new Item(2, "book", "John");
3840

3941
final ObjectMapper mapper = new ObjectMapper();
4042
final String result = mapper.writerWithView(Views.Public.class).writeValueAsString(item);
@@ -43,13 +45,11 @@ public void whenUsePublicView_thenOnlyPublicSerialized() throws JsonProcessingEx
4345
assertThat(result, containsString("2"));
4446

4547
assertThat(result, not(containsString("John")));
46-
assertThat(result, not(containsString("1")));
4748
}
4849

4950
@Test
5051
public void whenUseInternalView_thenAllSerialized() throws JsonProcessingException {
51-
final User owner = new User(1, "John");
52-
final Item item = new Item(2, "book", owner);
52+
final Item item = new Item(2, "book", "John");
5353

5454
final ObjectMapper mapper = new ObjectMapper();
5555
final String result = mapper.writerWithView(Views.Internal.class).writeValueAsString(item);
@@ -58,7 +58,6 @@ public void whenUseInternalView_thenAllSerialized() throws JsonProcessingExcepti
5858
assertThat(result, containsString("2"));
5959

6060
assertThat(result, containsString("John"));
61-
assertThat(result, containsString("1"));
6261
}
6362

6463
@Test
@@ -84,4 +83,4 @@ public void whenUseCustomJsonViewToSerialize_thenCorrect() throws JsonProcessing
8483
assertThat(result, containsString("JOHN"));
8584
assertThat(result, containsString("1"));
8685
}
87-
}
86+
}

jackson/src/test/java/org/baeldung/jackson/jsonview/UserController.java renamed to spring-rest/src/main/java/org/baeldung/web/controller/ItemController.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,25 @@
1-
package org.baeldung.jackson.jsonview;
1+
package org.baeldung.web.controller;
22

3+
import org.baeldung.web.dto.Item;
4+
import org.baeldung.web.dto.ItemManager;
5+
import org.baeldung.web.dto.Views;
36
import org.springframework.web.bind.annotation.PathVariable;
47
import org.springframework.web.bind.annotation.RequestMapping;
58
import org.springframework.web.bind.annotation.RestController;
69

710
import com.fasterxml.jackson.annotation.JsonView;
811

912
@RestController
10-
public class UserController {
13+
public class ItemController {
1114

1215
@JsonView(Views.Public.class)
13-
@RequestMapping("/{id}")
16+
@RequestMapping("/items/{id}")
1417
public Item getItemPublic(@PathVariable final int id) {
1518
return ItemManager.getById(id);
1619
}
1720

1821
@JsonView(Views.Internal.class)
19-
@RequestMapping("/internal/{id}")
22+
@RequestMapping("/items/internal/{id}")
2023
public Item getItemInternal(@PathVariable final int id) {
2124
return ItemManager.getById(id);
2225
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package org.baeldung.web.dto;
2+
3+
import com.fasterxml.jackson.annotation.JsonView;
4+
5+
public class Item {
6+
@JsonView(Views.Public.class)
7+
public int id;
8+
9+
@JsonView(Views.Public.class)
10+
public String itemName;
11+
12+
@JsonView(Views.Internal.class)
13+
public String ownerName;
14+
15+
public Item() {
16+
super();
17+
}
18+
19+
public Item(final int id, final String itemName, final String ownerName) {
20+
this.id = id;
21+
this.itemName = itemName;
22+
this.ownerName = ownerName;
23+
}
24+
25+
public int getId() {
26+
return id;
27+
}
28+
29+
public String getItemName() {
30+
return itemName;
31+
}
32+
33+
public String getOwnerName() {
34+
return ownerName;
35+
}
36+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package org.baeldung.web.dto;
2+
3+
public class ItemManager {
4+
5+
public static Item getById(final int id) {
6+
final Item item = new Item(2, "book", "John");
7+
return item;
8+
}
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package org.baeldung.web.dto;
2+
3+
public class Views {
4+
public static class Public {
5+
}
6+
7+
public static class Internal extends Public {
8+
}
9+
}

0 commit comments

Comments
 (0)