json注意
json返回到前台数字时 最好是字符串 ,浏览器有可能将小数.00搞消失
//Gson
1.create
Gson gson = new Gson();
Gson gson = new GsonBuilder()
.setLenient()// json宽松 默认情况下,Gson是严格的,只接受RFC 4627指定的JSON。此选项使解析器在接受的内容中更加自由。
.serializeNulls() //解决null{"name":"zs","age":10,"color":null}
.setDateFormat("yyyy-MM-dd")//日期格式
//.setPrettyPrinting()格式化
//.enableComplexMapKeySerialization()//支持Map的key为复杂对象的形式
.create();
2.bean->jsonStr:
String gsonStr = gson.toJson(bean);
3.JsonStr->JsonObject:
略
4.jsonStr->jsonArray:
略
5.JsonStr->Bean:
int aaa = gson.fromJson(json, int.class);
List<PersonJson> list = gson.fromJson(listJsonStr,new TypeToken<ArrayList<PersonJson>>(){}.getType());
6.从jsonObj中获取jsonArray:
略
7.从jsonArray中获取某一个json对象:
略
//fastjson
1.create://传 true 使用的为linkedhashmap有序
new JSONObject(true);
2.bean->jsonStr: //如果json值为null则在字符串中key也看不见
String jsonstr = JSONObject.toJSONString(data);
3.JsonStr->JsonObject: //1可以映射为boolean的true,其他数字可以映射为boolean的false
JSONObject extJsonObj = JSONObject.parseObject(jsonStr);
4.jsonStr->jsonArray:
JSONArray array = JSONArray.parseArray(jsonStr);
5.JsonStr->Bean:
Object obj = JSONObject.parseObject(jsonstr, clazz);//jsonStr->Bean
List<Tree<MenuDO>> menus = JSON.parseObject(menujson, new TypeReference<List<Tree<MenuDO>>>() {});//jsonstr->vo 要校验jsonstr保证没不报错才可使用
6.从jsonObj中获取jsonArray:
JSONArray array = jsonObject.getJSONArray("stationList");
7.从jsonArray中获取某一个json对象:
JSONObject interval = intervalArray.getJSONObject(i);
8.策略
JSON.toJSONString(result, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullListAsEmpty, SerializerFeature.WriteNullStringAsEmpty);
//jackson
1.create
private ObjectMapper objectMapper = new ObjectMapper();
ObjectMapper mapper = new ObjectMapper();
2.bean->jsonStr: bean中无值则补null
String jsonlist = mapper.writeValueAsString(users);
3.JsonStr->JsonObject:
4.jsonStr->jsonArray:
5.JsonStr->Bean: str中的name,bean中必须有
User user = mapper.readValue(json, User.class);
List<User> beanList = mapper.readValue(json, new TypeReference<List<User>>() {});
6.从jsonObj中获取jsonArray:
7.从jsonArray中获取某一个json对象:
//将对象 转为xml格式字符串 使用XStream
XStream xStream = new XStream();
xStream.alias("ORDER", Order.class);
xStream.alias("valueList", Code.class);
xStream.autodetectAnnotations(true);
// 去掉 class 属性
xStream.aliasSystemAttribute(null, "class");
String xml = xStream.toXML(order);