下面是要解析的json字符串
String dc_cover ={"citys":["11","12","13"],"districts":[["1","2","3"],["4","5","6"],["7","8","9"]]}
首先,根据json的数据格式写对应的javabean,如下:
public class DcCoverBean implements Serializable{
private static final long serialVersionUID = -74792293394L;
private List<String> citys;
private List<List<String>> districts;
public List<String> getCitys() {
return citys;
}
public void setCitys(List<String> citys) {
this.citys = citys;
}
public List<List<String>> getDistricts() {
return districts;
}
public void setDistricts(List<List<String>> districts) {
this.districts = districts;
}
}
下面是用java 解析json字符串的代码
由于此处博主的json字符串 citys和districts的数量一样,且一一对应,故用如下解析
DcCoverBean dcCoverBean = Json.fromJson(DcCoverBean.class, dc_cover);
int size = dcCoverBean.getCitys().size();
List<String> citys = dcCoverBean.getCitys();
List<List<String>> districts = dcCoverBean.getDistricts();
for (int i = 0;i < size;i++){
String city = citys.get(i);
List<String> district = districts.get(i);
System.out.println(city.toString());
System.out.println(district.toString());
}
最终打印出 11 ["1","2","3"] 12 ["4","5","6"] 13 ["7","8","9"]
如果需要进一步解析,只要从list数组中用get取得就可以.
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fastjson 生成json时Null属性不显示
Map < String , Object > jsonMap = new HashMap< String , Object>();
jsonMap.put("a",1);
jsonMap.put("b","");
jsonMap.put("c",null);
jsonMap.put("d","wuzhuti.cn");
String str = JSONObject.toJSONString(jsonMap);
System.out.println(str);
//输出结果:{"a":1,"b":"",d:"wuzhuti.cn"}
SerializerFeature序列化属性
也就是这个方法:JSONObject.toJSONString(Object object, SerializerFeature… features)
Fastjson的SerializerFeature序列化属性
QuoteFieldNames———-输出key时是否使用双引号,默认为true
WriteMapNullValue——–是否输出值为null的字段,默认为false
WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null
WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null
WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null
WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null