标签: pojo

使用Jackson XML映射器将Java List序列化为XML

嗨,我需要使用Jackson-dataformat XMLMapper从JAVA创建XML.XML应该是这样的

<Customer>
  <id>1</id>
  <name>Mighty Pulpo</name>
    <addresses>
      <city>austin</city>
      <state>TX</state>
    </addresses>
    <addresses>
      <city>Hong Kong</city>
      <state>Hong Kong</state>
    </addresses>
</Customer>
Run Code Online (Sandbox Code Playgroud)

但我总是喜欢额外的"<addresses> </ addresses>"标签.

<Customer>
  <id>1</id>
  <name>Mighty Pulpo</name>
<addresses>
    <addresses>
      <city>austin</city>
      <state>TX</state>
    </addresses>
    <addresses>
      <city>Hong Kong</city>
      <state>Hong Kong</state>
    </addresses>
<addresses>
</Customer>
Run Code Online (Sandbox Code Playgroud)

我使用下面的代码来创建XML

JaxbAnnotationModule jaxbAnnotationModule = new JaxbAnnotationModule();
XmlMapper mapper = new XmlMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
mapper.registerModule(jaxbAnnotationModule);
mapper.registerModule(new GuavaModule());
String xml = mapper.writeValueAsString(customer);
System.out.println(xml);
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗?如何删除额外的标签呢.我试过使用@XmlElement,但它没有帮助.TIA!

java xml pojo jackson xmlmapper

17
推荐指数
2
解决办法
2万
查看次数

Java POJO是否应该进行字段验证并在setter方法中抛出异常?

假设我们有几十个代表我的域的java POJO,也就是我系统中的数据,它作为我系统不同层之间的对象流动.该系统可以是Web应用程序,也可以是简单的桌面应用程序.域包含的内容并不重要.

在设计我的系统时,我很困惑我应该放置任何验证逻辑.我的POJO(域对象)代表我的数据,这些对象中的一些字段必须符合某些条件,但如果我在我的setter方法中放入了很多验证逻辑,那么告诉调用客户端的唯一方法是抛出异常.如果我不希望系统崩溃,则异常必须是必须捕获和处理的已检查异常.这样做的结果是每次我使用setter-methods(甚至构造函数)创建一个新对象时,我都会重新抛出该异常或使用try-catch块.在许多setter方法上强制使用try-catch是不对的.

所以问题是我应该把我的验证逻辑放在哪里,这样我就不会在我的代码中混淆大量的样板try-catch块和重新抛出.欢迎最优秀的JAVA字节用户加入讨论.

我已经研究过Google,但没有找到关于这个主题的具体讨论,所以我非常热情地等待,以便更深入地了解事情应该如何完成.

java oop validation pojo

17
推荐指数
1
解决办法
5107
查看次数

POJO类中"is"变量getter/setter的正确语法是什么?

如果一个类包含一个名为"blah"的变量,那么标准的getter/setter语法显然是getBlah()和setBlah().但是如果我有一个名为isBlah的变量的POJO类,我会使用:

public type getIsBlah() {
  return isBlah;
}

public setIsBlah(type isBlah) {
  this.isBlah = isBlah;
}
Run Code Online (Sandbox Code Playgroud)

或者是这样吗?

public type isBlah() {
  return isBlah;
}

public setBlah(type blah) {
  this.isBlah = blah;
}
Run Code Online (Sandbox Code Playgroud)

第一种似乎更符合POJO惯例,但第二种类型是IntelliJ生成的,如果我要求它创建一个类'getter/setters(嘿,IntelliJ从来没有让我失望:).那么首选语法是什么?

java pojo

15
推荐指数
1
解决办法
1万
查看次数

Model,javabean和POJO之间的区别

我开始用spring学习MVC.我听过很多时间Bean,包含了setter和getter.Model基本上是什么数据流动,Pojo哪些是相同的Bean.但是我在这个术语中真的很困惑,所有这些对我来说都是一样的,请你们解释一下这些术语的确切区别.

JAVABEAN

POJO

模型

java model pojo javabeans

15
推荐指数
1
解决办法
1万
查看次数

使用JAXB创建不可变对象

我正在使用JAXB从XSD文件创建Java对象.我正在创建不可变的包装器来隐藏JAXB生成的对象(之前我正在更新JAXB对象以实现不可变的接口并将接口返回到客户端.但是意识到改变自动生成的类是不好的,因此使用包装器)

目前我将这些不可变的包装器返回给客户端应用程序.是否有任何选项,以便自动生成的类将是不可变的,它将避免创建不可变包装器的额外工作.鼓励采取任何其他方法.

  • 谢谢

java jaxb pojo

14
推荐指数
3
解决办法
6595
查看次数

无法构造“com.domain.User”的实例(不存在创建者,如默认构造函数):无法从对象值反序列化

ObjectNode我有一个接受as 的控制器@RequestBody

ObjectNode代表json一些用户数据

{
    "given_name":"ana",
    "family_name": "fabry",
    "email": "fabry@gmail.com",
    "password": "mypass",
    "gender": "FEMALE"
}
Run Code Online (Sandbox Code Playgroud)

控制器.java

@PostMapping(produces = MediaType.APPLICATION_JSON_VALUE)
    public JsonNode createUser(@RequestBody ObjectNode user){
        return userService.addUser(user);
 }
Run Code Online (Sandbox Code Playgroud)

我想让用户将ObjectNode其转换为 JavaPOJO将其保存到数据库并再次将其返回为JsonNode.

UserServiceImpl.java

    private final UserRepository userRepository;
    private final UserMapper userMapper;

    @Override
    public JsonNode addUser(@RequestBody ObjectNode user) {
        try {
            return userMapper.fromJson(user)
                    .map(r -> {
                        final User created = userRepository.save(r);
                        return created;
                    })
                    .map(userMapper::toJson)
                    .orElseThrow(() -> new ResourceNotFoundException("Unable to find user")); …
Run Code Online (Sandbox Code Playgroud)

java pojo jsonnode

13
推荐指数
1
解决办法
3万
查看次数

什么是JAVA的POJO和DOJO?

我对POJO有很多怀疑.用一个小例子寻求一个清晰的定义.

java pojo

12
推荐指数
2
解决办法
9万
查看次数

Jersey 2.0和Moxy内部服务器错误但没有服务器日志

我按照Jersey 2.0文档(https://jersey.java.net/documentation/latest/user-guide.html#json.moxy),修改了pom.xml,包含了jersey-media-moxy工件,编译和安装.我可以为Produces和Consumes案例获得基本的POJO到JSON映射工作.

但是,当我尝试使用复杂数据类型的某些POJO作为资源返回类型时,我得到了很多状态500内部服务器错误但没有任何服务器日志.这很烦人.有人知道这是一个错误还是我错过了一些配置?

顺便说一下,为了对POJO对象使用Moxy映射,POJO需要有一个空参数构造函数.还有其他要求吗?

json jax-rs jersey pojo moxy

11
推荐指数
2
解决办法
5243
查看次数

如何使用FasterXML使用注释反序列化XML

我有以下XML架构:

<Courses semester="1">
    <Course code="A231" credits="3">Intermediate A</Course>
    <Course code="A105" credits="2">Intro to A</Course>
    <Course code="B358" credits="4">Advanced B</Course>
</Courses>
Run Code Online (Sandbox Code Playgroud)

我需要将其转换为POJO:

public class Schedule
{
   public int semester;
   public Course[] courses;
}

public class Course
{
   public String code;
   public int credits;
   public String name;
}
Run Code Online (Sandbox Code Playgroud)

这里有两件重要的事情需要注意:

  1. 课程对象不包含在标签中
  2. 一些属性是属性

我如何需要注释我的对象才能让FasterXML反序列化这个xml?

java xml pojo jackson fasterxml

11
推荐指数
1
解决办法
1万
查看次数

Jackson定制过滤器,具有完整的POJO数据绑定

这个问题扩展了这个问题.

如果您只有几个字段,之前的解决方案效果很好,那么当您拥有十几个字段时,它就变得无法维护.现在,我当前的设置使用完整的数据绑定,所以我有一个POJO,Jackson将使用它来自动反序列化JSON.

但是,和以前一样,某些字段具有需要通过的约束.基本上,我正在寻找类似于的答案,但无需设置任何属性.只是一个自定义反序列化器,它将充当过滤器,并在字段不符合约束时抛出自定义异常.如果过滤器结束时没有抛出任何异常,Jackson应自动将JSON绑定到POJO.

java json pojo jackson jackson2

11
推荐指数
2
解决办法
568
查看次数

标签 统计

pojo ×10

java ×9

jackson ×3

json ×2

xml ×2

fasterxml ×1

jackson2 ×1

javabeans ×1

jax-rs ×1

jaxb ×1

jersey ×1

jsonnode ×1

model ×1

moxy ×1

oop ×1

validation ×1

xmlmapper ×1