Как параметризовать вложенное тело запроса JSON в рамках обеспечения безопасности? - PullRequest
0 голосов
/ 22 апреля 2020

Это мой запрос JSON body: {"Name": "SomeName", "Privileges": [

  {

        "PrivilegeName": "ABC"
    },
    {

        "PrivilegeName": "xyz"
    },
    {

        "PrivilegeName": "qwerty"
    }

]

}

Я хочу прочитать данные из Excel и заполните json вводы тела. например, ab c.

Если это простое тело json, я могу читать данные из Excel и заполнять их. Я использую концепцию POJO для построения моего JSON тела в спокойной среде?

1 Ответ

1 голос
/ 23 апреля 2020

Вы должны показать, что вы пытались.

Как вы сказали, вы используете концепцию 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));
 }
}
...