Tag: json

如何使用Java和Jackson Library对Json String进行多态反序列化?

我有一些类A,B,C它们都inheritance自BaseClass类。 我有一个String json,它包含A,B,C或BaseClass的json表示。 我想有一些方法将此String反序列化为BaseClass(多态反序列化)。 像这样的东西 BaseClass base = ObjectMapper.readValue(jsonString, BaseClass.class); jsonString可以是A,B,C或BaseClass中的任何一个的Json String表示。

将Json日期转换为java日期

我的json 响应包含CreatedOn日期: { “CreatedOn” : “\/Date(1406192939581)\/” } 我需要将CreatedOn转换为简单的日期格式,并计算从CreatedOn Date到Present Date的差异天数。 当我调试下面的代码字符串CreatedOn显示一个空值。 怎么来的? JSONObject store = new JSONObject(response); if (response.contains(“CreatedOn”)) { String CreatedOn = store.getString(“CreatedOn”); }

是否可以仅使用JDK或HttpComponents处理JSON响应?

我们正在升级我们的网络应用程序以使用Facebook的Graph API,它返回JSON响应。 但是,我们不希望将依赖性添加到JSON库,除非我们没有其他选择。 对于服务器端的http请求,我们使用Apache HttpComponents。 因此,我的问题是我可以用来处理JSON响应的JDK和/或HttpComponents中的类(如果有的话)是什么? 欢迎使用代码片段:)

我们可以在使用JSON时将对象设置为地图中的键吗?

如下面的代码: public class Main { public class innerPerson{ private String name; public String getName(){ return name; } } public static void main(String[] args){ ObjectMapper om = new ObjectMapper(); Map map = new HashMap(); innerPerson one = new Main().new innerPerson(); one.name = “david”; innerPerson two = new Main().new innerPerson(); two.name = “saa”; innerPerson three = new […]

Jackson JSON序列化,通过级别定义的递归避免

我使用Jackson库将我的pojo对象序列化为JSON表示。 例如,我有A类和B类: class A { private int id; private B b; constructors… getters and setters } class B { private int ind; private A a; constructors… getters and setters } 如果我想序列化来自A类的对象,则在序列化时有可能获得递归。 我知道我可以通过使用@JsonIgnore来阻止它。 是否可以按深度级别限制序列化? 例如,如果级别为2,则序列化将采用以下方式: 序列化a,level = 0(0 序列化 序列化ab,level = 1(1 序列化 序列化aba,level = 2(2 停止 提前致谢。

Kafka:编写自定义序列化程序

我正在尝试用Kafka 0.8.1建立一个POC。 我使用自己的java类作为Kafka消息,它有一堆String数据类型。 我不能使用默认的序列化程序类或Kafka库附带的String序列化程序类。 我想我需要编写自己的序列化程序并将其提供给生产者属性。 如果您知道在Kafka中编写示例自定义序列化程序(在java中),请分享。 非常感谢,非常感谢。

从命令行运行jar时出现MessageBodyProviderNotFoundException

我正在使用Java Jersey框架(使用Maven),并使用IntelliJ作为我的IDE。 我遇到过这个运行时exception,只有在我尝试从命令行运行代码时才会发生(使用maven编译然后运行java -jar)但是在IntelliJ中运行时这是奇怪的。 我有一些Java代码将尝试在某个远程URL上进行HTTP GET并尝试将返回的JSON读入某些Lombok POJO: String targetUrl = “some valid URL”; WebTarget webTarget = client.target(targetUrl); Response response = webTarget.request(MediaType.APPLICATION_JSON_TYPE).get(); ParseResponse parseResponse = response.readEntity(ParseResponse.class); 我不知道为什么,但是当它击中执行“readEntity()”方法的最后一行时,我将得到以下错误: org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyReader not found for media type=text/json; charset=utf-8 这很奇怪,因为我肯定在我的pom.xml中指定了jersey-media-json-jackson依赖项: org.glassfish.jersey.media jersey-media-json-jackson 2.23 这是我尝试将readEntity()转换为我的POJO类: @Data @JsonIgnoreProperties(ignoreUnknown = true) public class ParseResponse { @JsonProperty(“id”) private Integer id; …Other params… } 就像我之前提到的那样,奇怪的是,只有当我尝试在命令行上运行时才会发生这种情况,但在IntelliJ中运行时没有错误: […]

在html表中输出JSON数组(jsp页面)

正如标题所示,如何在JSP页面的表中正确输出JSON数组? 现在每当我使用显示JSON数组对象时,它只是以JSON字符串显示它的全部内容,即{name: hello, address: baker street }但是我是什么想要做的是以某种方式解析这个并适当地显示信息,如下所示: **name** **address** hello baker street spring java tim sun JSTL有可能吗? 我是JSTL的新手。 package com.kc.models; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.sql.Blob; import java.sql.SQLException; import org.hibernate.Hibernate; public class FileObject { private String filename; private String type; private double size; private Blob file; private int id; private String os; private […]

Jackson JSON库:如何实例化包含抽象字段的类

我想将JSON字符串转换为java对象,但此对象的类包含抽象字段,Jackson无法实例化,也不会生成对象。 告诉它关于抽象类的一些默认实现的最简单方法是什么,比如 setDefault(AbstractAnimal.class, Cat.class); 或者根据JSON属性名称来决定实现类,例如。 对于JSON对象: { … cat: {…} … } 我愿意: setImpl(“cat”, Cat.class); 我知道Jackson可以在JSON中嵌入类信息,但我不想让我使用的JSON格式复杂化。 我想通过设置默认实现类或属性名称(’cat’)来决定使用哪个类 – 就像在XStream库中一样,您可以在其中编写: xStream.alias(“cat”, Cat.class); 有没有办法这样做,特别是在一行中,还是需要更多的代码?

使用类名作为JSON Jackson序列化的根密钥

假设我有一个pojo: import org.codehaus.jackson.map.*; public class MyPojo { int id; public int getId() { return this.id; } public void setId(int id) { this.id = id; } public static void main(String[] args) throws Exception { MyPojo mp = new MyPojo(); mp.setId(4); ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true); System.out.println(mapper.getSerializationConfig().isEnabled(SerializationConfig.Feature.WRAP_ROOT_VALUE)); System.out.println(mapper.writeValueAsString(mp)); } } 当我使用Jackson ObjectMapper进行序列化时,我得到了 true {“id”:4} 但我想要 […]