Java JSON到对象映射
要将此JSON转换为要与jackson映射的POJO以从字符串Java JSON到对象映射,java,json,jackson,Java,Json,Jackson,要将此JSON转换为要与jackson映射的POJO以从字符串jsonSource反序列化给定JSON,请使用 "statValues": { "c__TL_gattooi": { "value": 90.0 },
jsonSource
反序列化给定JSON,请使用
"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
},
}
我为你制作了POJO
ObjectMapper mapper = new ObjectMapper();
Root root = mapper.readValue(jsonSource, Root.class);
import java.util.HashMap;
类根{
私有HashMap statValues=新HashMap();
公共HashMap getStatValues(){
返回statvalue;
}
public void setStatValues(HashMap statValues){
this.statValues=statValues;
}
}
阶级价值{
双重价值;
公共双getValue(){
返回值;
}
公共无效设置值(双值){
这个值=值;
}
}
如果您可以提供更好的名称,可以使用@JsonProperty
要访问value,请使用类似于
root.get(“c_utl_gattooi”).getValue()
,以获取键列表-root.keys()
,那么您想出了什么样的POJO不起作用呢?“c_utl_gattooi:{“value”:90.0},c\uu TL\u gattooi
如果除了大括号中的值之外没有其他东西,那么这应该是常量字符串,这就是为什么要使事情复杂化的原因。如果可以,可以将其简化为Map
作为POJO。如果没有,那么您需要创建一个类型,该类型的值为Double
属性。并且您的类statValues
将具有您提到的属性将具有您编写的类型为value
。问题陈述是“c_uutl_gattooi”这种值是ramdom,它们至少有700个值不能创建类kike,这也必须与jackson映射才能使用jackson,伙计,你摇了它,
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;
}
}