Tag: jackson

RESTEASY003145:无法找到内容类型application / json的MessageBodyReader并键入class org.keycloak.representations.AccessTokenResponse

我正在尝试测试Keycloak REST API。 Instaled版本2.1.0.Final。 我可以通过浏览器使用SSL访问管理员而不会出现问题。 我正在使用上面的代码: Keycloak keycloakClient = KeycloakBuilder.builder() .serverUrl(“https://keycloak.intra.rps.com.br/auth”) .realm(“testrealm”) .username(“development”) .password(“development”) .clientId(“admin-cli”) .resteasyClient(new ResteasyClientBuilder().connectionPoolSize(10).build()) .build(); List rr = keycloakClient.realms().findAll(); 并得到错误: javax.ws.rs.ProcessingException: RESTEASY003145: Unable to find a MessageBodyReader of content-type application/json and type class org.keycloak.representations.AccessTokenResponse javax.ws.rs.client.ResponseProcessingException: javax.ws.rs.ProcessingException: RESTEASY003145: Unable to find a MessageBodyReader of content-type application/json and type class org.keycloak.representations.AccessTokenResponse at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:141) at […]

如果接收到无效的JSon,则不会调用ExceptionMapper

我使用Jersey 2.5.1和Jackson 2.2。 用于构建JSON Rest Web服务。 我有点了,并且运行了2个ExceptionMappers但是对于“not-json”请求,应用程序没有抛出任何exception! ExceptionMapper如果抛出NullPointerException,将调用它 如果JSon Mapping出现问题,将调用ExceptionMapper 我的问题:1。请求正文:{}工作2.请求正文:{}与应用程序端NullPointer调用第一个exception映射器3.请求正文:“jibberish”不调用任何东西(没有被任何ExceptionMapper捕获)导致没有exception被抛出。 不幸的是,响应主体是这样的:无法识别的字段“xxx”(类com.sample.MyDto),未标记为可忽略(9个已知属性……)但我想自定义错误消息,因为我总是返回一个JSon对象。

使用Jackson注释将子数组解析为JSON?

我正在尝试解析一些包含嵌套数组的JSON。 我希望数组映射到父映射中的子对象列表。 这是(稍微缩写)JSON和Java类 JSON: { “id”: “12121212121”, “title”: “Test Object”, “media$content”: [ { “plfile$audioChannels”: 1, “plfile$audioSampleRate”: 18000, }, { “plfile$audioChannels”: 2, “plfile$audioSampleRate”: 48000, }, { “plfile$audioChannels”: 2, “plfile$audioSampleRate”: 48000, } ] } Java类 class MediaObject { @JsonProperty(“id”) private String id; @JsonProperty(“title”) private String title; @JsonProperty(“media$Content”) private List mediaContent; … getters/setters … } class MediaContent { […]

如何使用jackson将java对象序列化为xml属性?

有没有办法通过jackson序列化java var(例如int)作为xml属性? 我找不到任何特定的jackson或json注释(@XmlAttribute @ javax.xml.bind.annotation.XmlAttribute)来实现这一点。 例如 public class Point { private int x, y, z; public Point(final int x, final int y, final int z) { this.x = x; this.y = y; this.z = z; } @javax.xml.bind.annotation.XmlAttribute public int getX() { return x; } … } 我想要的是: 但我得到的只是: 100 100 100 有没有办法获取属性而不是元素? 感谢帮助!

jackson反序列化哈希映射

我有以下JSON: “propertyName”: “{“1”:[{“1″:”value1″,”2″:”value2″,”3″:false}]}” 第一个属性是具有属性映射后数组中项目的计数。 如果我想填写一个包含这些值的类,那么使用Jackson对此进行反序列化的最佳方法是: class MyHolder { name = “value1”; age = “value2”; female = false; } 例如。

Jersey,Jackson和JAX-RS POST多种JSON格式

我试图能够定义以下代码: public class MyObject { private String name; … // Other attributes } @Path(…) @Stateless public class MyRestResource { @POST @Consumes(MediaType.APPLICATION_JSON) public Response create(List myObjects) { // Do some stuff there } } 我知道我需要使用: DeserializationConfig.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true 正确设置我的对象映射器,以便能够在我的其余资源上接受单个值作为数组。 我成功地设置了那个部分。 我对这种方法的问题是以下内容不可区分: { “name”: “a name”, … // other attributes } 和 [{ “name”: “a name”, … // […]

jackson:不同的XML和JSON格式

在我的基于Apache wink的REST项目中,我们使用Jackson jax-rs提供程序来处理JSON和XML内容类型。 我们的响应对象包含HashMap 。 映射键包含空格,因此无法将其序列化为XML元素名称。 JSON序列化工作正常。 JSON格式: { “properties”: { “abc”: { “name”: “abc”, “type”: “Double”, “value”: “2.0” }, “xyz”: { “name”: “xyz”, “type”: “Double”, “value”: “0.0” } } } 期望的XML格式 我们如何使用Jackson jax-rs XML和JSON提供程序实现这一目标。 是否可以定义自定义jackson序列化程序并扩展jax-rs提供程序。 请建议最好的方法。

Java Jackson – 意外的令牌(START_ARRAY),预期为VALUE_STRING

嗨,我试图在java中使用jackson反序列化json数据。 我面临一个错误如下:意外的令牌(START_ARRAY),预期的VALUE_STRING:需要包含类型ID的JSON字符串(对于附件的子类型)这是我使用的代码。 请让我知道如何解决此问题。 提前致谢。 ObjectMapper mapper = new ObjectMapper(); mapper.enableDefaultTyping(); Audio audio = new Audio(2,2,”www.google.com”,”HelloWorld”); List link = new ArrayList(); link.add(audio); try { String jsonDataString= mapper.writerWithDefaultPrettyPrinter().writeValueAsString(link); System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(link)); Attachment f1 = new Attachment(); f1 = mapper.readValue(jsonDataString,Attachment.class); } catch (JsonProcessingException e) { // TODO Auto-generated catch block e.printStackTrace(); } JSON: [[ “Audio”, { “url” : “www.google.com”, “title” […]

在外部类java中使用内部类对象

我正面临将json对象转换为POJO类的问题。 我有一个名为Service的公共类,它有一个内部类User。 我想使用内部类作为容器/对象来保存所有外部类方法的变量。 我正在尝试执行以下操作,但我收到编译错误。 请说明我如何做到这一点,请在下面的代码中纠正我正在做的错误。 从eclipse调试窗口,我看到下面的json是在节点变量节点中获得的:{“firstName”:“ndndbs”,“lastName”:“dnjdnjs”} 试验1: public class Service { // Method public boolean createUserAccount(JsonNode node) throws Exception { ObjectMapper mapper = new ObjectMapper(); User user=null; try { Service service=new Service(); user = mapper.readValue(node, User.class); } catch (Exception e) {throw new Exception(“failed to bind json”, e);} System.out.println(“Use this anywhere in method”+userNode.firstName); } } // […]

Jackson JSON生成HTTP状态500,XML工作

我目前正在使用Jackson将Java对象序列化为JSON和XML作为REST Web服务的响应。 我有以下带注释的Java对象: @XmlRootElement(name = “Product”) @XmlAccessorType(XmlAccessType.FIELD) public class ProductDetailsView { @XmlElement private int id; @XmlElement private long EAN; @XmlElement private String manufacturer; @XmlElement private String modelname; @XmlElementWrapper(name = “onlineCompetitors”) @XmlElement(name = “competitor”) private List onlineCompetitors; 现在,前几个字段是原始类型,它们在JSON和XML中都完美地工作(事实上,有更多的原始字段)。 但是,从我添加OnlineCompetitorView列表的那一刻起,JSON序列化就不再起作用,并导致应用程序生成HTTP状态500(“内部服务器错误”)。 但是,当我使用application / xml作为接受的内容类型时,它可以完美地工作。 正确的XML响应: 1 5901234123457 Samsung 1 Shop1 4 488.95 7 2 Shop2 5 498.95 12 […]