Вы должны показать, что вы пытались.
Как вы сказали, вы используете концепцию POJO
для построения JSON
, вариант Jackson ObjectMapper
.
Например, у вас могут быть следующие POJO
классы:
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty;
public class User {
@JsonProperty("Name")
private String name;
@JsonProperty("Privileges")
private List<Privilege> privileges;
public void setName(String name) { this.name = name; }
public String getName() { return this.name; }
public void setPrivileges(List<Privilege> privileges) { this.privileges = privileges; }
public List<Privilege> getPrivileges() { return this.privileges; }
}
и
import com.fasterxml.jackson.annotation.JsonProperty;
public class Privilege {
@JsonProperty("PrivilegeName")
private String privilegeName;
public void setPrivilegeName(String privilegeName) { this.privilegeName = privilegeName; }
public String getPrivilegeName() { return this.privilegeName; }
}
Тогда этот подход Jackson ObjectMapper
создаст ваш JSON
:
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.List;
import java.util.ArrayList;
public class JacksonObjectMapperTest {
private ObjectMapper objectMapper = new ObjectMapper();
public User createUser() {
User user = new User();
user.setName("SomeName");
List<Privilege> privileges = new ArrayList<Privilege>();
Privilege privilege = new Privilege(); privilege.setPrivilegeName("ABC");
privileges.add(privilege);
privilege = new Privilege(); privilege.setPrivilegeName("xyz");
privileges.add(privilege);
privilege = new Privilege(); privilege.setPrivilegeName("qwerty");
privileges.add(privilege);
user.setPrivileges(privileges);
return user;
}
public String getJSONString(User user) throws Exception {
String json = objectMapper.writeValueAsString(user);
return json;
}
public static void main(String[] args) throws Exception {
JacksonObjectMapperTest jOMT = new JacksonObjectMapperTest();
User user = jOMT.createUser();
System.out.println(jOMT.getJSONString(user));
}
}