Tag: jackson

如何使用Jackson JSONvalidationJSON

我试图使用Jackson JSON取一个字符串并确定它是否是有效的JSON。 任何人都可以建议使用代码示例(Java)?

Jackson ObjectMapper()构造函数抛出NoSuchMethod

我正在使用Jackson示例代码反序列化POJO: ObjectMapper m = new ObjectMapper(); 该行抛出NoSuchMethodError: Exception in thread “main” java.lang.NoSuchMethodError: org.codehaus.jackson.type.JavaType.(Ljava/lang/Class;)V at org.codehaus.jackson.map.type.TypeBase.(TypeBase.java:15) at org.codehaus.jackson.map.type.SimpleType.(SimpleType.java:45) at org.codehaus.jackson.map.type.SimpleType.(SimpleType.java:40) at org.codehaus.jackson.map.type.TypeBindings.(TypeBindings.java:18) at org.codehaus.jackson.map.type.TypeFactory._fromType(TypeFactory.java:525) at org.codehaus.jackson.map.type.TypeFactory.type(TypeFactory.java:61) at org.codehaus.jackson.map.ObjectMapper.(ObjectMapper.java:179) at com.me.util.ctrl.BillingJobStatus.fromJson(BillingJobStatus.java:37) 我不明白

使用Jersey / JAXB / Jackson的Java.util.Map到JSON对象

我一直在尝试创建Jersey REST Web服务。 我想从Java类接收和发出JSON对象,如下所示: @XmlRootElement public class Book { public String code; public HashMap names; } 这应该像这样转换为JSON: { “code”: “ABC123”, “names”: { “de”: “Die fabelhafte Welt der Amelie”, “fr”: “Le fabuleux destin d’Amelie Poulain” } } 但是我找不到一个标准的解决方案。 每个人似乎都在实施自己的包装 解决方案 。 这个要求对我来说似乎是极其基本的; 我无法相信这是普遍接受的解决方案,特别是因为Jersey真的是Java中更有趣的部分之一。 我也试过升级到Jackson 1.8,它只给了我这个,这是极端虚假的JSON: { “code”: “ABC123”, “names”: { “entry”: [{ “key”: “de”, “value”: “Die […]

Java to Jackson JSON序列化:Money字段

目前我正在使用Jackson从我的基于Spring的Web应用程序发送JSON结果。 我遇到的问题是试图将所有货币字段输出为2位小数。 我无法使用setScale(2)解决此问题,因为25.50之类的数字被截断为25.5等 还有其他人处理过这个问题吗? 我正在考虑使用自定义的Jackson序列化程序创建Money类…您可以为字段变量创建自定义序列化程序吗? 你可能……但即使如此,我怎么能让我的客户序列化器将数字添加为2位小数的数字?

jackson – Json到多个参赛作品的PO​​JO

我知道如果文件User.json有 { “name” : { “first” : “Joe”, “last” : “Sixpack” }, “gender” : “MALE”, “verified” : false, “userImage” : “Rm9vYmFyIQ==” } 我可以像这样构造一个User对象: User user = mapper.readValue(new File(“user.json”), User.class); 但是如果User.json文件具有以下内容,我该如何构造对象列表: { “name” : { “first” : “Joe”, “last” : “Sixpack” }, “gender” : “MALE”, “verified” : false, “userImage” : “Rm9vYmFyIQ==” }, { “name” : { […]

Jackson TypeReference在扩展时是否有效?

以下片段是不言自明的。 您可以看到类型信息未被删除,但mapper不会获取类型信息。 我的猜测是jackson不允许这样,对吧? 如果我直接传递TypeReference,它会被正确反序列化。 public class AgentReq extends TypeReference<AgentResponse> {…} mapper.readValue(reader, new AgentReq<Map<String, Set>>()); 如果我这样做它也不起作用: public class AgentReq { public TypeReference<AgentResponse> getTypeRef() { return new TypeReference<AgentResponse>() {}; } } mapper.readValue(reader, new AgentReq<Map<String, Set>>()).getTypeRef(); 我正在使用2.1.5版。 编辑:为了将来参考,在解决问题时不要低估TypeReference构造函数。 在那里你可以直接看到它是否能够检索类型信息。 顺便说一句答案是否定的,你不能扩展TypeReference并期望它工作,你甚至不能覆盖它的getType()方法并为它提供从你的类中解析的类型信息,因为你可以得到的只是getClass()。 getGenericSuperClass()…你不能做getClass()。getGenericClass()

jackson – 必需的财产?

我在对象映射器上使用Jackson的readValue()方法从JSON文件中读取并将其转换为我的java对象。 例如。 mapperObject.readValue( node, MyTargetClass.class ) 我可以在MyTargetClass上设置任何注释来强制执行必需的属性吗? 例如,如果我有一个带有属性ABC,DEF和GHI的JSON对象,我的Json就是以下内容 { “ABC” : “somevalue” “DEF” : “someothervalue” } 我希望它以某种方式失败,只有在包含ABC,DEF和GHI的readValue上才能成功。

如何将java.lang.String的空白JSON字符串值反序列化为null?

我正在尝试一个简单的JSON来反序列化到java对象。 但是,我获取了java.lang.String属性值的空String值。 在其余属性中,空值会转换为空值(这就是我想要的)。 我的JSON和相关的Java类如下所示。 JSON字符串: { “eventId” : 1, “title” : “sample event”, “location” : “” } EventBean类POJO: public class EventBean { public Long eventId; public String title; public String location; } 我的主要类代码: ObjectMapper mapper = new ObjectMapper(); mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); mapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT); try { File file = new File(JsonTest.class.getClassLoader().getResource(“event.txt”).getFile()); JsonNode root = mapper.readTree(file); // find out the […]

jackson将变量反序列化为Json字符串

我有这样的模型: private String message; private Integer errorCode; private String data; 我从远程和消息中获取JSON字符串,errorCode变量获取正确的值。 但是,我不想反序列化到我的数据变量。 我希望它像一个json字符串: {“cat”: “1.2.3.4”, “ner”: “80”, “name”: “pinta” } 之后,我将反序列化它以反对自己。 我怎样才能做到这一点? PS:澄清问题: 我得到一个类似的Json字符串: {“data”:{“cat”:“1.2.3.4”,“ner”:“80”,“name”:“pinta”},“message”:“m”,“errorCode”:12} 反序列化后,我的变量应具有以下值: message => “m” errorCode => 12 data => “{“cat”: “1.2.3.4”, “ner”: “80”, “name”: “pinta” }”

jackson列表反序列化。 嵌套列表

我正在创建一个具有嵌套列表的API。 jackson似乎是一个创建对象的好工具,但我无法弄清楚如何嵌套列表,我想知道它是否可行。 我的对象看起来像这样。 public class Order { public String name; public List items; } 我希望有一种方法可以将它映射到json,看起来像: { name : “A name” items : { elements : [{ price : 30 }] } } 我们希望能够这样做,以便我们可以向列表添加属性。