Bonjour,

J'ai un fichier xml qui peut contenir une element, ce dernier peut etre null ou peut contenir une liste d'element, pour cela, j'ai crée un TypeAdapter comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class EmptyStringAsNullTypeAdapter extends TypeAdapter<String> {
 
	@Override
	public void write(JsonWriter out, String value) throws IOException {
		out.value(value);
	}
 
	@Override
	public String read(JsonReader in) throws IOException {
		if (in.peek() == JsonToken.NULL) {
			in.nextNull();
			return null;
		}
 
		String result = in.nextString();
		if ("".equals(result)) {
			return null;
		}
		return result;
	}
}
Classe WARNING_CONDITION_LIST :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
@SerializedName(value = "warningConditionList")
@JsonAdapter(EmptyStringAsNullTypeAdapter.class)
WarningConditionList warningConditionList;
Classe WarningConditionList :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
@SerializedName(value = "warningCondition")
String warningCondition;
Un exemple de la structure du code XML avec un element est comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<WARNING_CONDITION_LIST>
    <warningConditionList>
        <warningCondition>INK_WF_COND_EMPTY</warningCondition>
    </warningConditionList>
</WARNING_CONDITION_LIST>
Et sans l'element est comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<WARNING_CONDITION_LIST>
    <warningConditionList />
 </WARNING_CONDITION_LIST>
Le souci que j'ai est dans l'Adapter sa me retourne pas u nString dans le cas de la presence de l'element, la valeur retournée est : BEGIN_OBJECT

Je tourne au rond depuis quelque jours , comment recuperer la liste en cas de presence de l'element ?

Merci