{
"chart":{
"caption":"Business Results 2005 v 2006",
"xaxisname":"Month",
"yaxisname":"Revenue",
"showvalues":"0",
"numberprefix":"$"
},
"categories":[{
"category":[{
"label":"Jan"
},
{
"label":"Feb"
},
{
"label":"Mar"
}
]
}
],
"dataset":[{
"seriesname":"2006",
"data":[{
"value":"27400"
},
{
"value":"29800"
},
{
"value":"25800"
}
]
},
{
"seriesname":"2005",
"data":[{
"value":"10000"
},
{
"value":"11500"
},
{
"value":"12500"
}
]
}
],
"trendlines":{
"line":[{
"startvalue":"26000",
"color":"91C728",
"displayvalue":"Target",
"showontop":"1"
}
]
},
"styles":[{
"definition":[{
"style":[{
"name":"CanvasAnim",
"type":"animation",
"param":"_xScale",
"start":"0",
"duration":"1"
}
]
}
],
"application":[{
"apply":[{
"toobject":"Canvas",
"styles":"CanvasAnim"
}
]
}
]
}
]
}
以上JSON数据用java对象怎样表示? 会的请解答,谢谢。
JSONObject json = new JSONObject(data);3. 通过JSONMapper的tojava()方法将JSONObject转化为我们需要的对象。 但在处理的过程中,如果遇到主外键关联的时候很不好处理,容易出错,所以就想到了根据java的反射
机制动态去转化JSON对象为pojo对象。private Object fromJsonToJava(JSONObject json,Class pojo)
throws Exception{
// 首先得到pojo所定义的字段
Field [] fields = pojo.getDeclaredFields();
// 根据传入的Class动态生成pojo对象
Object obj = pojo.newInstance();
for(Field field: fields){
// 设置字段可访问(必须,否则报错)
field.setAccessible(true);
// 得到字段的属性名
String name = field.getName();
// 这一段的作用是如果字段在JSONObject中不存在会抛出异常,如果出异常,则跳过。
try{
json.get(name);
}catch(Exception ex){
continue;
}
if(json.get(name) != null && !"".equals(json.getString(name))){
// 根据字段的类型将值转化为相应的类型,并设置到生成的对象中。
if(field.getType().equals(Long.class) || field.getType().equals(long.class)){
field.set(obj, StringUtil.parseLong(json.getString(name)));
}else if(field.getType().equals(String.class)){
field.set(obj, json.getString(name));
} else if(field.getType().equals(Double.class) || field.getType().equals(double.class)){
field.set(obj, StringUtil.parseDouble(json.getString(name)));
} else if(field.getType().equals(Integer.class) || field.getType().equals(int.class)){
field.set(obj, StringUtil.parseInt(json.getString(name)));
} else if(field.getType().equals(java.util.Date.class)){
field.set(obj, DateTimeUtil.stringToDate(json.getString(name), "yyyy-MM-dd"));
}else{
continue;
}
}
}
return obj;
}
import net.sf.json.JSONObject;包自己去下载。
json数组可以用Array表示
数组存在List里
万变不离其宗,无非是谁套谁的问题