首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何制作草书(récursive?)自定义反序列化

如何制作草书(récursive?)自定义反序列化
EN

Stack Overflow用户
提问于 2019-06-03 23:03:03
回答 1查看 35关注 0票数 0

我正在使用一个自定义的反序列化,但我需要一个比我的大脑更好的大脑来解决这个问题。

为了简单起见:我有一个json文件、一个实体、一个反序列化类和一个main

关注EntityDeserialization (作为参数实体的searchEntitie函数)和Main (实体变量)

Entity.json (rootEntity是一个实体对象)

代码语言:javascript
复制
[
  {
    "name": "BFA",
    "entityType": "secteur",
    "rootEntity": ""

  },
    {
    "name": "IT",
    "entityType": "service",
    "rootEntity": ""

  },
  {
    "name": "EX",
    "entityType": "offre",
    "rootEntity": "BFA"
  }
]

实体类

代码语言:javascript
复制
@JsonDeserialize(using = EntityDeserialization.class)
public class Entity {
    private String name;
    private String entityType;
    private Entity rootEntity;

EntityDeserialization

代码语言:javascript
复制
 public Entity deserialize(JsonParser jp, DeserializationContext ctxt)
            throws IOException {
        JsonNode node = jp.getCodec().readTree(jp);
        String name =  node.get("name").asText();
        String entitype = node.get("entityType").asText();
        String rootEntity = node.get("rootEntity").asText();
        Entity entity = new Entity();
        entity = entity.searchEntity(entities, rootEntity);
        return new Entity(name, entitype,entity);
    }

Main

代码语言:javascript
复制
 public static void main(String[] args) throws FileNotFoundException {
        com.fasterxml.jackson.databind.ObjectMapper mapper = new ObjectMapper();
        mapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
        TypeReference<List<User>> typeReferenceUser = new TypeReference<>() {};
        TypeReference<List<Entity>> typeReferenceEntity = new TypeReference<>() {};
        FileInputStream inputStreamUser = new FileInputStream("C:\\Users\\oraph\\Desktop\\user.json");
        FileInputStream inputStreamEntity = new FileInputStream("C:\\Users\\oraph\\Desktop\\entity.json");
        try {
           List<User> users = mapper.readValue(inputStreamUser,typeReferenceUser);
           List<Entity> entities = mapper.readValue(inputStreamEntity,typeReferenceEntity);
...

这里的问题是:我在EntityDeserialization searchEntity(List entity, String rootEntity)中注意使用我的函数,它是主要的,并且处于填充过程中。

EN

回答 1

Stack Overflow用户

发布于 2019-06-11 02:59:51

我找到了一种方法,通过两个成功的反序列化。一个用于填充实体列表,另一个用于使用该列表构建Entity对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56430006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档