标签: pojo

是否有一个库将Java POJO转换为JSON和XML?

为了创建REST风格的API,我有一个对象图,我想要转换为JSON和XML.令我感到震惊的是,某人必须已经这样做了,但是使用Google和Stack Overflow进行的快速搜索没有任何结果.

有没有人知道一个合适的(Apache或等效的许可首选)库来做到这一点?

java xml json pojo

30
推荐指数
4
解决办法
4万
查看次数

默认情况下,对布尔字段的JSON Post请求发送为false

您好我正在使用FireFox RestClient发送JSON Post请求.

我的JSON请求如下:

 { "firstName": "Test", "lastName": "1", "isActive": 1 }
Run Code Online (Sandbox Code Playgroud)

我的POJO具有isActive字段如下

  private boolean isActive;
Run Code Online (Sandbox Code Playgroud)

我的控制器定义如下

@RequestMapping(method = {RequestMethod.POST, 
                                 RequestMethod.PUT}, value = "/save")
public ResponseEntity<RestResponse> save(
      @RequestBody POJOUserDetails userDetails, WebRequest request){
Run Code Online (Sandbox Code Playgroud)

在我的POJO中,当我检查isActive的值时,无论发送什么,它都是假的.我在我的JSON请求中尝试了以下值

"isActive": 1
"isActive": true 
"isActive": "true"
"isActive": ""
"isActive": null
"isActive": false
Run Code Online (Sandbox Code Playgroud)

以上所有都在我的控制器中发送错误.请帮忙.谢谢

添加POJO详细信息

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonSerialize(include=Inclusion.NON_EMPTY)
public class POJOUserDetails {
private String firstName;
private String lastName;
private boolean isActive;

public boolean isActive() {
    return isActive;
}
public void setActive(boolean isActive) {
    this.isActive = isActive;       
} …
Run Code Online (Sandbox Code Playgroud)

java json spring-mvc pojo jackson

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

JUnit测试POJO

我在一个项目上工作,我们必须为所有简单的bean(POJO)创建单元测试.如果所有POJO都是getter和setter,那么为POJO创建单元测试是否有任何意义?假设POJO在大约100%的时间内都能正常工作,这是一个安全的假设吗?


重复 - 应该测试@Entity Pojos吗?

也可以看看

在数据库而不是假存储库上运行测试是不好的做法吗?

是否有一个Java单元测试框架可以自动测试getter和setter?

java junit pojo

28
推荐指数
4
解决办法
4万
查看次数

有没有办法为Hibernate管理的对象声明最终字段?

我刚刚开始使用Hibernate,到目前为止我看到的所有示例看起来都非常像Hibernate文档中的教程:

package org.hibernate.tutorial.domain;
import java.util.Date;

public class Event {

    private Long id;
    private String title;
    private Date date;

    public Event() {}

    /* Accessor methods... */
}
Run Code Online (Sandbox Code Playgroud)

具体来说:没有任何字段被声明为final,并且必须有一个无参数构造函数,以便Hibernate框架可以实例化该类并设置其字段.

但事情就是这样 - 我真的不喜欢每当我能避免它时就以任何方式使我的类变得可变(Java实践:不可变对象为此做出了相当强烈的论据).那么,即使我要声明每个字段的"最终",有没有办法让Hibernate工作

我知道Hibernate使用Reflection来实例化它的类,因此需要能够调用某种构造函数,而不会冒险选择错误的构造函数或将错误的值传递给它的一个参数,所以它可能更安全调用no-arg构造函数并一次设置一个字段.但是,是否应该可以向Hibernate提供必要的信息,以便它可以安全地实例化不可变对象?

public class Event {

    private final Long id;
    private final String title;
    private final Date date;

    public Event(@SetsProperty("id") Long id,
        @SetsProperty("title") String title,
        @SetsProperty("date") Date date) {

        this.id = id;
        this.title = title;
        this.date = new Date(date.getTime());
    }

    /* Accessor methods... */
} …
Run Code Online (Sandbox Code Playgroud)

java hibernate final pojo

23
推荐指数
3
解决办法
8771
查看次数

getter和setter执行额外的逻辑

我有一个Java类,它代表两个元素之间的相关性(典型的POJO):

public class Correlation {

    private final String a;
    private final String b;

    private double correlation;

    public Correlation(String a, String b) {
        this.a = a;
        this.b = b;
    }

    public double getCorrelation() {
        return correlation;
    }

    public void setCorrelation(double correlation) {
        this.correlation = correlation;
    }

}
Run Code Online (Sandbox Code Playgroud)

如果a等于b,则遵循正确的相关逻辑,那么相关值应该始终为1.我可以添加改变getter方法的逻辑(忽略a的可能空值的事实):

public double getCorrelation() {
    if (a.equals(b)) {
        return 1D;
    } else {
        return correlation;
    }
}
Run Code Online (Sandbox Code Playgroud)

困扰我的是将此逻辑添加到getter方法,如果我更改方法名称或记录它应该被认为是足够的?

java pojo

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

生成在Eclipse中返回self的setter

我想要我的定制者,以便我可以将它们链接起来:

myPojo.setX(x).setY(y);
Run Code Online (Sandbox Code Playgroud)

通常我使用Eclipse生成setter但不幸的是code template,setter允许我只更改setter的主体,而不是签名.

什么是最简单的方法来完成上述?除了搜索和替换+手动编辑?:)

java eclipse code-generation pojo

22
推荐指数
3
解决办法
5067
查看次数

Android:动态传递模型类以改进回调

通过改造将json响应映射到pojo通常我们这样做

@POST
Call<User> getDataFromServer(@Url String url, @Body HashMap<String,Object> hashMap);

ApiCalls api = retrofit.create(ApiCalls.class);
    Call<User> call = api.getDataFromServer(StringConstants.URL,hashMap);
    call.enqueue(new Callback<User>() {
         //Response and failure callbacks
    }
Run Code Online (Sandbox Code Playgroud)

用户是我的Pojo课程.但是对于每个其他请求,我需要制作不同的pojo并为改进调用编写相同的代码.我想制作一个单独的方法来调用api并传递相应的pojo类来改进调用.像这样

ApiCalls api = retrofit.create(ApiCalls.class);
Call<*ClassPassed*> call = api.getDataFromServer(StringConstants.URL,hashMap);
call.enqueue(new Callback<*ClassPassed*>() {
     //Response and failure callbacks
}
Run Code Online (Sandbox Code Playgroud)

所以现在我可以将任何pojo类转换为单个方法并获得响应.这只是为了避免一次又一次地重写相同的代码.这是可能的

更新 要详细说明:

假设我需要提出两个请求.第一个是获取userDetails,另一个是patientDetails.所以我必须创建两个模型类User和Patient.所以在改造api我会有类似的东西

@POST
Call<User> getDataFromServer(@Url String url, @Body HashMap<String,Object> hashMap);

@POST
Call<Patient> getDataFromServer(@Url String url, @Body HashMap<String,Object> hashMap);
Run Code Online (Sandbox Code Playgroud)

在我的FragmentUser和FragmentPatient类中,我将这样做

  ApiCalls api = retrofit.create(ApiCalls.class);
Call<User> call = api.getDataFromServer(StringConstants.URL,hashMap);
call.enqueue(new Callback<User>() {
     //Response and failure callbacks
}

ApiCalls …
Run Code Online (Sandbox Code Playgroud)

android pojo retrofit retrofit2

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

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

从HashMap设置对象字段

是否有可以执行以下操作的库?:

给定一个Object和一个HashMap,它枚举Hashmap的键,并在Object中查找这些键的setter并设置相关的值.看起来像这样的东西:

public Object setData(Object object, HashMap<String, Object> fields) {
   for (Entry<String, Object> entry : fields.entrySet()) {
      Method m = object.getClass().getMethod("set" + entry.getKey(), entry.getValue().getClass());
      if (m != null) {
         m.invoke(object, entry.getValue());
      }
   }
   return object;
}
Run Code Online (Sandbox Code Playgroud)

这个任务看起来很简单,但我希望有人已经注意到了一些细微差别.如你所知,重新发明轮子(好轮子)是一种糟糕的方法.

java reflection pojo

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

侵入的确切含义是什么?是什么让Spring非侵入性?

我是Spring框架的新手.在我看到的大多数Spring教程中,Spring被描述为"非侵入性".

侵入性是什么意思?在Java中使用Spring有什么优点,是什么让它成为非侵入性的?

java apache spring pojo

20
推荐指数
3
解决办法
8383
查看次数