public class JacksonSerializer {
public static final String INPUT = "{\n" +
" \"menu\": [\n" +
" {\n" +
" \"1\": \"sql\",\n" +
" \"2\": \"android\",\n" +
" \"3\": \"mvc\"\n" +
" }\n" +
" ]\n" +
"}";
public static class MenuItems {
Map<String, String> menu = Maps.newHashMap();
}
public static class MenuItemsDeserializer extends JsonDeserializer<MenuItems> {
@Override
public MenuItems deserialize(org.codehaus.jackson.JsonParser jsonParser,
DeserializationContext deserializationContext)
throws IOException, JsonProcessingException {
JsonNode node = jsonParser.getCodec().readTree(jsonParser);
final JsonNode elems = node.getElements().next().getElements().next();
final Map<String, String> map = Maps.newHashMap();
final Iterator<Map.Entry<String, JsonNode>> it = elems.getFields();
while (it.hasNext()) {
final Map.Entry<String, JsonNode> entry = it.next();
map.put(entry.getKey(), entry.getValue().asText());
}
final MenuItems menuItems = new MenuItems();
menuItems.menu = map;
return menuItems;
}
}
public static void main(final String[] args) throws IOException {
ObjectMapper mapper = new ObjectMapper();
SimpleModule module = new SimpleModule("SimpleModule",
new Version(1,0,0,null));
module.addDeserializer(MenuItems.class, new MenuItemsDeserializer());
mapper.registerModule(module);
MenuItems menuItems = mapper.readValue(INPUT, MenuItems.class);
}
}
如何使用杰克逊将json数组转换为Java hashmap
如何使用杰克逊将json数组转换为Java hashmap
推荐问题
分类汇总
- (2)
- .net(5)
- Access(210)
- android(1)
- android-studio(1)
- angular(1)
- bash(1)
- c(1)
- c#(625)
- chrome-devtools(1)
- CSS(782)
- css3动画(1)
- docker(1)
- docker-compose(2)
- dotnet(477)
- echarts5.0(1)
- elasticsearch(2)
- element-ui(1)
- eslint(1)
- eventbus(1)
- ffmpeg(2)
- fiddler(1)
- flask(1)
- flutter(1)
- git(2)
- Go(2093)
- golang(9)
- gradle(1)
- harmonyos(4)
- ios(1)
- Java(7682)
- javascript(1221)
- Jave(256)
- JS(330)
- jwt(1)
- kafka(1)
- linux(1)
- lua(1)
- matlab(1)
- mongodb(192)
- MySQL(2516)
- nestjs(1)
- nginx(1)
- Node(262)
- node.js(3)
- Oracle(458)
- php(1213)
- player(1)
- Postgres(167)
- ppt(1)
- python(11274)
- react.js(6)
- redis(2)
- rollup(1)
- seata(1)
- sequelize(1)
- sniffer(1)
- Solr(23)
- springboot(1)
- SQL(118)
- SQLServer(5624)
- Swift(224)
- sybase(21)
- typescript(5)
- uniapp(1)
- uni-app(1)
- vant-weapp(1)
- visual-studio-code(1)
- vue.js(12)
- vue3(3)
- vuex(1)
- wasm(1)
- webpack(1)
- 笔记本电脑(1)
- 调试技巧(1)
- 公众号(1)
- 机器学习(1)
- 计算机(1)
- 爬虫(1)
- 其他(33505)
- 前端(16)
- 算法(2)
- 小程序(3)
- 虚拟机(1)
- 运维(1)