Tag: jackson

date格式映射到JSON Jackson

我有一个来自API的date格式是这样的: "start_time": "2015-10-1 3:00 PM GMT+1:00" 这是YYYY-DD-MM HH:MM am / pm GMT时间戳。 我将这个值映射到POJO中的Datevariables。 显然,它显示转换错误。 我想知道2件事情: 我需要用什么格式来与jackson进行转换? date是一个很好的字段types呢? 一般来说,有没有办法在variables被Jackson映射到Object成员之前处理variables呢? 就像改变格式,计算等等

在Java中将Java对象转换为JsonNode

有没有可能直接将Java对象转换为JsonNode对象? 我发现解决这个问题的唯一方法是将Java对象转换为string,然后转换为JsonNode: ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(object); JsonNode jsonNode = mapper.readTree(json);

序列化与jackson的枚举

我有一个枚举如下: public enum OrderType { UNKNOWN(0, "Undefined"), TYPEA(1, "Type A"), TYPEB(2, "Type B"), TYPEC(3, "Type C"); private Integer id; private String name; private WorkOrderType(Integer id, String name) { this.id = id; this.name = name; } //Setters, getters…. } 我用我的控制器( new OrderType[] {UNKNOWN,TYPEA,TYPEB,TYPEC}; )返回枚举数组,并将其序列化到下面的jsonstring中: ["UNKNOWN", "TYPEA", "TYPEB", "TYPEC"] 什么是迫使jackson像POJO一样序列化枚举的最佳方法? 例如: [ {"id": 1, "name": "Undefined"}, {"id": […]

jackson克服强调骆驼案件的强调

我从互联网上检索一个JSONstring; 像大多数JSON我已经看到它包括由下划线分隔的长键。 从本质上讲,我的目标是将JSON反序列化为java对象,但是我不在java代码中使用下划线。 例如,我可能有骆驼案件的firstName字段的User类,同时我需要以某种方式告诉jackson将first_name键从JSON映射到firstName类字段。 可能吗? class User{ protected String firstName; protected String getFirstName(){return firstName;} }

从jackson2.2的ObjectMapper漂亮打印JSON

现在我有一个org.fasterxml.jackson.databind.ObjectMapper的实例,并希望得到一个漂亮的JSON String 。 我的Googlesearch的所有结果都提供了Jackson 1.x的方法,我似乎无法find2.2版本的正确的,不被弃用的方法。 即使我不相信这个代码对于这个问题来说是绝对必要的,但是我现在所知道的是: ObjectMapper mapper = new ObjectMapper(); mapper.setSerializationInclusion(Include.NON_NULL); System.out.println("\n\n———-REQUEST———–"); StringWriter sw = new StringWriter(); mapper.writeValue(sw, jsonObject); // Want pretty version of sw.toString() here

杰森序列化:忽略空值(或null)

我目前正在使用jackson2.1.4,我有一些麻烦,当我将对象转换为JSONstring时忽略字段。 这是我的课,作为被转换的对象: public class JsonOperation { public static class Request { @JsonInclude(Include.NON_EMPTY) String requestType; Data data = new Data(); public static class Data { @JsonInclude(Include.NON_EMPTY) String username; String email; String password; String birthday; String coinsPackage; String coins; String transactionId; boolean isLoggedIn; } } public static class Response { @JsonInclude(Include.NON_EMPTY) String requestType = null; Data data […]

序列化和反序列化过程中JSON属性的不同名称

有没有可能:在类库中有一个字段,但在Jackson库的序列化/反序列化过程中有不同的名称? 例如,我有class级“Coordiantes”。 class Coordinates{ int red; } 对于JSON的解密想要像这样的格式: { "red":12 } 但是当我要序列化对象时,结果应该是这样的: { "r":12 } 我试图通过在getter和setter(使用不同的值)上应用@JsonProperty注释来实现这一点: class Coordiantes{ int red; @JsonProperty("r") public byte getRed() { return red; } @JsonProperty("red") public void setRed(byte red) { this.red = red; } } 但我得到了一个例外: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "red"

将JSONstring转换为使用Jackson的漂亮打印JSON输出

这是我拥有的JSONstring, {"attributes":[{"nm":"ACCOUNT","lv":[{"v":{"Id":null,"State":null},"vt":"java.util.Map","cn":1}],"vt":"java.util.Map","status":"SUCCESS","lmd":13585},{"nm":"PROFILE","lv":[{"v":{"Party":null,"Ads":null},"vt":"java.util.Map","cn":2}],"vt":"java.util.Map","status":"SUCCESS","lmd":41962}]} 我需要将上面的JSONstring转换为Pretty Print JSON Output(使用Jackson) { "attributes": [ { "nm": "ACCOUNT", "lv": [ { "v": { "Id": null, "State": null }, "vt": "java.util.Map", "cn": 1 } ], "vt": "java.util.Map", "status": "SUCCESS", "lmd": 13585 }, { "nm": "PROFILE "lv": [ { "v": { "Party": null, "Ads": null }, "vt": "java.util.Map", "cn": 2 } ], "vt": […]

jackson枚举序列化和DeSerializer

我使用JAVA 1.6和jackson1.9.9我有一个枚举 public enum Event { FORGOT_PASSWORD("forgot password"); private final String value; private Event(final String description) { this.value = description; } @JsonValue final String value() { return this.value; } } 我已经添加了一个@JsonValue,这似乎做了它的序列化对象的工作: {"event":"forgot password"} 但是当我尝试反序列化时,我得到了一个 Caused by: org.codehaus.jackson.map.JsonMappingException: Can not construct instance of com.globalrelay.gas.appsjson.authportal.Event from String value 'forgot password': value not one of declared Enum instance […]

在序列化过程中只使用@JsonIgnore,而不是反序列化

我有一个用户对象发送到服务器和从服务器。 当我发送用户对象时,我不想将散列的密码发送给客户端。 所以我在密码属性中添加了@JsonIgnore ,但是这也阻止了它被反序列化到密码中,这使得当用户没有密码时很难注册用户。 我怎样才能让@JsonIgnore适用于序列化而不是反序列化? 我正在使用Spring JSONView,所以我没有对ObjectMapper一大堆控制。 我试过的东西: 将@JsonIgnore添加到属性 @JsonIgnore在getter方法上添加@JsonIgnore