2017-10-16 5 views
1

Je consomme une chaîne JSON qui contient un objet image parmi d'autres objets. A partir de ce que je crée un PropertyBusinessObject qui a les éléments suivantsClassCastException - java.lang.String ne peut pas être converti en com.codename1.ui.Image

public final Property<EncodedImage, Profile> profilePic = new Property<>("profilePic", EncodedImage.class); 

J'ai créé une méthode dans la PropertyBusinessObject

public EncodedImage getProfilePic() { 
    return profilePic.get(); 
} 

Je remplir mes données dans l'objet métier de la propriété comme suit:

profile.getPropertyIndex().populateFromMap((Map) profileObject); 

Lorsque j'essaie d'afficher l'image sur le formulaire en utilisant le code suivant,

ScaleImageLabel profilePic = new ScaleImageLabel(profile.getProfilePic()) { 
     @Override 
     protected Dimension calcPreferredSize() { 
      Dimension dimension = super.calcPreferredSize(); 
      dimension.setHeight(Math.min(dimension.getHeight(), Display.getInstance().convertToPixels(40))); 
      return dimension; 
     } 
    }; 
    profilePic.setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FILL); 
    container.add(BorderLayout.NORTH, profilePic); 

Je reçois un ClassCastException

Exception: java.lang.ClassCastException - java.lang.String ne peut pas être jeté à com.codename1.ui.Image

Quelqu'un peut me aider à résoudre, ou suggérer une autre façon de consommer la chaîne JSON?

+0

Quel est le format de l'image? base64? – Diamond

+0

L'image est Base64 – Rootsman

Répondre

1

populateFromMap Actuellement, les images Base64 ne sont pas supportées, j'ajouterai que cette option est logique. Devrait être là avec la mise à jour du vendredi.

+0

Merci Shai. Très appréciée. En attendant, pouvez-vous donner des indications sur la façon dont je pourrais faire la même chose? – Rootsman

+0

Vous pouvez parcourir la carte et remplacer les données de chaîne par une image à l'aide du décodage Base64. De toute façon, il sera là dans 2 jours donc une solution de contournement pourrait ne pas être nécessaire –