Json使用Gson对复杂内容进行序列化和反序列化

时间:2016-03-11 05:50:57

标签: java json serialization gson deserialization

我有一个结构,我想在文件中使用JSON存储。没有任何实现类具有比给定的更重要的信息。

public class ItemExample implements IItem{
   private ModelMap map;
   private String name;
}

public class ModelMap {
   private HashMap<Coord, IPartType> map;
}

public class Coord {
   private int x,y,z;
}

public class PartExample implements IPartType {  
   private String name;                         
   private Purity purity;
}

public Enum Purity{
}

我是创建JSON的新手,我一直在阅读Gson的工作原理,但我并不真正理解如何将这些示例翻译成我的案例。大多数例子都假设我还不知道某些方面的知识。

这是我开始为IPartType做的事情:

public class PartDeserialize<T>  implements JsonDeserializer<T>{

   @Override
   public T deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
       JsonObject content = json.getAsJsonObject();
       String name = content.get("name").getAsString();
       Purity purity = Purity.valueOf(content.get("purity").getAsString());
       return new Gson().fromJson(content, typeOfT);
   }
}

我将不胜感激。

每个请求可能的JSON示例:

{
   "name" : "sword",
   "map" :
   {
      "map" :
      {
         "1,1,1" :  //string representation of Coord
         {
            "name" : "blade",
            "purity" : "base" // string representation of Purity Enum
         },
         "0,0,0" :
         {
            "name" : "handle",
            "purity" : "high"
         }
      }
   }
}

0 个答案:

没有答案