小编was*_*ren的帖子

使用@JsonProperty 序列化地图

我尝试Map使用@JsonProperty注释序列化一个包含 a 的对象,但是当我测试它时,我看到只有映射的键被序列化。我查了一下,但没有找到解决方案,我做错了什么?

public class People {
    private final Map<Long,String> idToNameMap;

    public People(@JsonProperty("idToNameMap") final Map<Long,String> idToNameMap) {
        this.idToNameMap = idToNameMap;
    }
}


public class PeopleTest {

    private static final long ID_1 = 111l;
    private static final long ID_2 = 222l;
    private static final String NAME_1 = "name1";
    private static final String NAME_2 = "name2";

    private final ObjectMapper mapper = new ObjectMapper();

    @Test
    public void testFromAndToJSON() throws Exception {
        Map<Long,String> idToNameMap = Maps.newHashMap();
        idToNameMap.put(ID_1,NAME_1);
        idToNameMap.put(ID_2,NAME_2);
        mapper.writeValueAsString(new People(idToNameMap)); …
Run Code Online (Sandbox Code Playgroud)

java serialization json jackson

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

如何使用JsonFormat将Jackson Json NULL String反序列化为Date

我看了很多,但到目前为止仍然无法得到答案,任何帮助都非常感谢!

我有一个简单StringDate字段映射,并尝试将JSON字符串读取到Java对象.

@JsonInclude(value=Include.NON_EMPTY)
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="dd-MMM-yyyy", timezone="PST")
protected Date eolAnnounceDate;
Run Code Online (Sandbox Code Playgroud)

但是,如果JSON字符串值为空,则会出现以下异常.你能告诉我怎么解决这个问题吗?我尝试了一些选项,但它们都是为了序列化.

ObjectMapper objectMapper = new ObjectMapper();   
objectMapper.setSerializationInclusion(Include.NON_NULL); 
objectMapper.setSerializationInclusion(Include.NON_EMPTY);
Run Code Online (Sandbox Code Playgroud)

例外:

java.lang.IllegalArgumentException:无法解析Date值'NULL'(格式:"dd-MMM-yyyy"):Unparseable date:"NULL"com.fasterxml.jackson.databind.deser.std.DateDeserializers $ DateBasedDeserializer._parseDate( DateDeserializers.java:180)com.fasterxml.jackson.databind.deser.std.DateDeserializers $ DateDeserializer.deserialize(DateDeserializers.java:279)com.fasterxml.jackson.databind.deser.std.DateDeserializers $ DateDeserializer.deserialize(DateDeserializers. java:260)com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:464)com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:98)com.fasterxml. jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:295)com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:121)com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:230)com.fasterxml.jackson.databind.deser.std. CollectionDeserializer.deserialize(CollectionDeserializer.java:207)com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:23)com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java: 464)com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:98)com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:295)com.fasterxml.jackson. databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:121)com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2888)com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2034)com.cisco.cre.dao.impl.ElasticsearchDAOImpl.getListByIdsFilter(ElasticsearchDAOImpl.的java:94)

谢谢 - 阿图尔

string null json date jackson

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

在地图中使用模板

我正在编写一个名为的函数arrayToMap().我最初只是允许String数组,但我认为我可以使它通用所以任何类型的数组.我尝试了以下代码片段,但它告诉我T无法解析为一个类型:

public Map <T, Integer> arrayToMap( T [] arr ) {    
    assert( arr != null ) : "arrayToMap null array";
    Map<T,Integer> res = new HashMap<>();
    int ind = 0;
    for ( T val: arr ) {
        res.put(val, ind);
        ind++;
    }   
    return res;
}
Run Code Online (Sandbox Code Playgroud)

什么是正确的语法?

java

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

neo4j属性是否区分大小写?

neo4j属性是否区分大小写?换一种说法; 这两个Cypher查询是相同还是不同:

MATCH (n:Person {name: "Someone"}) RETURN n;

MATCH (n:Person {name: "someone"}) RETURN n;
Run Code Online (Sandbox Code Playgroud)

neo4j cypher

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

处理声纳规则"使用Char的指数"的最佳方法

我对以下方法的声纳主要违规行为:

private String getRequestId() {
    final String uuid = UUID.randomUUID().toString();
    return uuid.substring(uuid.lastIndexOf("-") + 1, uuid.length());
}
Run Code Online (Sandbox Code Playgroud)

Sonar建议我String.indexOf(char)在检查单个字符的索引时使用,因为它的执行速度比String.indexOf(String).

我明白了.

我没有得到的是如何以有效的方式在我的代码上应用这个建议.

java sonarqube

1
推荐指数
1
解决办法
1956
查看次数

标签 统计

java ×3

jackson ×2

json ×2

cypher ×1

date ×1

neo4j ×1

null ×1

serialization ×1

sonarqube ×1

string ×1