2017-09-21 5 views
-1
"statValues": { 
           "c__TL_gattooi": { 
               "value": 90.0 
           }, 
           "c_cwc_gattooi": { 
               "value": 3462.0 
           }, 
           "c_gaw__oxcgattooi": { 
               "value": 11.0 
           }, 
           "c_odesb__ox_gattooi": { 
               "value": 6.0 
           }, 
           "c_odesb_cwdc_gattooi": { 
               "value": 205472.0 
           }, 
           "c_ach38_sax_gattooi": { 
               "value": 1.0 
           }, 
} 

Vous voulez convertir cette JSON à un POJO à cartographiés avec jacksonJSON mapping objet

+1

Alors, que POJO êtes-vous venu avec qui ne fonctionne pas? –

+0

"c__TL_gattooi": {"value": 90.0}, 'c__TL_gattooi' cela devrait être constant Chaîne Si vous n'avez rien d'autre que la valeur entre accolades pourquoi vous compliquez les choses. Simplifiez-le à' Map 'comme POJO si vous le pouvez. Si ce n'est pas le cas, vous devez créer un type qui aura une valeur en tant qu'attribut' Double'. Votre classe 'statValues' aura des attributs comme vous l'avez mentionné aura comme type' value' comme écrit par vous . – ThinkTank

Répondre

0

Pour désérialiser donné JSON chaîne jsonSource utiliser quelque chose comme

ObjectMapper mapper = new ObjectMapper(); 
Root root = mapper.readValue(jsonSource, Root.class); 

Je généré POJO pour vous

import java.util.HashMap; 

class Root { 
    private HashMap<String, Value> statValues = new HashMap<>(); 

    public HashMap<String, Value> getStatValues() { 
     return statValues; 
    } 

    public void setStatValues(HashMap<String, Value> statValues) { 
     this.statValues = statValues; 
    } 
} 

class Value { 
    double value; 

    public double getValue() { 
     return value; 
    } 

    public void setValue(double value) { 
     this.value = value; 
    } 
} 

Si peut donner de meilleurs noms, il est possible de remapper les propriétés en utilisant @JsonProperty

Pour accéder à la valeur utiliser quelque chose comme root.get("c__TL_gattooi").getValue(), pour obtenir la liste des clés - root.keys()

+0

L'énoncé du problème est "c__TL_gattooi" ce genre de valeur sont ramdom et ils sont au moins 700 valeurs ne peuvent pas créer une classe kike cela, – user2681668

+0

Cela doit également être mappé avec jackson pour besoin d'utiliser jackson ici – user2681668

+0

Awesome mec vous l'avez secoué, – user2681668