2017-09-21 316 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 
           }, 
} 

想這個JSON轉換成POJO與傑克遜JSON到對象映射

+1

所以POJO你想出一個不工作? –

+0

「c__TL_gattooi」:{「value」:90.0}, 'c__TL_gattooi'這應該是常量字符串如果你在大括號中沒有其他值,那麼爲什麼你要將事情複雜化。簡化爲'Map '作爲POJO,如果可以的話。如果不是,那麼你需要創建一個類型爲'Double'的屬性,而你的類'statValues'將具有屬性,因爲你已經提到了類型就像你寫的'value' 。 – ThinkTank

回答

0

被映射到從字符串反序列化給JSON jsonSource使用類似

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

我了生成的POJO你

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; 
    } 
} 

如果可以給出更好的名稱,可以通過使用012重映射屬性

要訪問值使用類似root.get("c__TL_gattooi").getValue(),拿到鑰匙的名單 - root.keys()

+0

問題陳述是「c__TL_gattooi」這種價值是ramdom,他們至少有700個值不能創建一個類kike這個, – user2681668

+0

這也必須映射與傑克遜需要在這裏使用傑克遜 – user2681668

+0

令人敬畏的傢伙你搖擺它, – user2681668