Пользовательский десерализатор Gson для одной переменной в объекте

Мой пример проблемы:

У нас есть объектный тип Apple. У Apple есть несколько переменных-членов:

String appleName; // The apples name
String appleBrand; // The apples brand
List<Seed> seeds; // A list of seeds the apple has

И объект-семя выглядит следующим образом.

String seedName; // The seeds name
long seedSize; // The size of the seed

Теперь, когда я получаю объект-яблоко, яблоко может иметь более одного семени, или оно может иметь одно семя, а может и не иметь семян!

Пример яблока JSON с одним семенем:

{
"apple" : {
   "apple_name" : "Jimmy", 
   "apple_brand" : "Awesome Brand" , 
   "seeds" : {"seed_name":"Loopy" , "seed_size":"14" }
  }
}

Пример яблока JSON с двумя семенами:

{
"apple" : {
   "apple_name" : "Jimmy" , 
   "apple_brand" : "Awesome Brand" , 
   "seeds" : [ 
      { 
         "seed_name" : "Loopy",
         "seed_size" : "14"
      },
      {
         "seed_name" : "Quake",
         "seed_size" : "26"
      } 
  ]}
}

Теперь проблема в том, что первый пример - это JSONObject для семян, второй пример - это JSONArray для семян. Теперь я знаю, что это непоследовательный JSON, и самый простой способ исправить это - исправить сам JSON, но, к сожалению, я получаю JSON от кого-то другого, поэтому я не могу его исправить. Каким будет самый простой способ решить эту проблему?

29
задан posdef 17 August 2012 в 09:08
поделиться