1
我嘗試使用@JsonProperty
註釋序列化包含Map
的對象,但是當我測試它時,我看到只有映射的鍵被序列化。我查了一下,但沒有找到解決辦法,我做錯了什麼?使用@JsonProperty序列化映射
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));
}
}
好,它似乎做的工作:)我還有一個問題,雖然:似乎映射的鍵被序列化爲字符串,而不是長期,有沒有辦法強制鍵序列化爲長? – user2512231
@ user2512231那麼,JSON鍵總是字符串。否則,它不是有效的JSON。但是,這些值可能是數字,字符串,數組或其他JSON對象。 – wassgren
明白了,謝謝! – user2512231