需要用到的架包:
1 创建JSON数组
/**
* 创建JSON数组
* @return
*/
public static JSONArray createJSONArray(){
JSONArray jsonArray=new JSONArray();
JSONObject jsonObject=null;
for (int i = 0; i < 5; i++) {
jsonObject=new JSONObject();
jsonObject.put("a", 1);
jsonObject.put("b", 2);
jsonObject.put("c", 3);
jsonObject.put("d", 4);
jsonObject.put("e", 5);
jsonArray.add(jsonObject);
}
return jsonArray;
}
2
2.1 单个对象转换成JSON数据
Java原始的方式:
public static void beanCovertJSON() throws IOException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
User user = new User();
user.setId(1);
user.setName("dema");
user.setPassword("123");
ObjectMapper objectMapper =new ObjectMapper();
//将对象转换成JSON数据
String JSONUser=objectMapper.writeValueAsString(user);
System.out.println(JSONUser);
}
或者采用如下的方式:
/**
* 对象转为JSON对象,对象数组转为JSON数组
*/
public static void objectArrConvertJSONArr(){
User user01=new User();
user01.setId(1);
user01.setName("111");
user01.setPwd("111");
User user02=new User();
user02.setId(2);
user02.setName("222");
user02.setPwd("222");
User user03=new User();
user03.setId(3);
user03.setName("333");
user03.setPwd("333");
User[] userArr=new User[3];
userArr[0]=user01;
userArr[1]=user02;
userArr[2]=user03;
//对象转JSON类型
JSONObject jsonObject=JSONObject.fromObject(user01);
System.out.println(jsonObject);
//对象数组转JSON数组
JSONArray jsonArray=JSONArray.fromObject(userArr);
System.out.println(jsonArray);
}
阿里巴巴开源JSON工具fastjson:
/**
* 对象转JSON
*/
public static void javaBeanConvertJson() {
User user=new User();
user.setId(1);
user.setName("name");
user.setPassword("password");
Object json = JSONObject.toJSON(user);
System.out.println(json);
}
2.2 Java对象集合转json
/**
* Java对象集合转json
*/
public static void lstJavaConvertJson() {
List<User> lstUser=new ArrayList<User>();
User user01=new User();
user01.setId(1);
user01.setName("name");
user01.setPassword("password");
lstUser.add(user01);
User user02=new User();
user02.setId(2);
user02.setName("name");
user02.setPassword("password");
lstUser.add(user02);
System.out.println(lstUser.toString());
Object json = JSONArray.toJSON(lstUser);
System.out.println(json);
}
3 对象转成二进制数据
public static void beanConvertByte() throws JsonProcessingException{
User user = new User();
user.setId(1);
user.setName("dema");
user.setPassword("123");
ObjectMapper objectMapper =new ObjectMapper();
byte[] b=objectMapper.writeValueAsBytes(user);
}
4 JSONObject数据转换成Map
Java原始方式:
public static void JSONObjectConvertMap(){
ObjectMapper objectMapper =new ObjectMapper();
JSONArray jsonArray=createJSONArray();
Map map=null;
try {
map = objectMapper.readValue(jsonArray.getJSONObject(0).toString(), Map.class);
} catch (JsonParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(map.get("a"));
}
阿里巴巴开源JSON工具fastjson:
/**
* json对象转Map
*/
public static void jsonConvertMap() {
JSONObject obj=new JSONObject();
obj.put("id", "1");
obj.put("name", "name");
obj.put("password", "password");
Map<String,String> param=JSONObject.parseObject(obj.toJSONString(), new TypeReference<Map<String, String>>(){});
System.out.println(param.toString());
}
5 Map转换成JSON
public static void MapConvertJSON() throws JsonProcessingException{
String str=null;
Map map=new HashMap();
map.put("1","a");
map.put("2", "b");
map.put("3", "c");
ObjectMapper objectMapper =new ObjectMapper();
//转换
str=objectMapper.writeValueAsString(map);
System.out.println(str);
}
fastjson工具:
/**
* Map转JSON
*/
public static void mapConvertMap() {
Map<String,Object> param=new HashMap<String, Object>();
param.put("a", 1);
param.put("b", 2);
param.put("c", 3);
Object json = JSONObject.toJSON(param);
System.out.println(json);
}
6
6.1 单个json字符串转Java对象
/**
* json字符串转Java对象
*/
public static void jsonObjConvertJavaBean() {
JSONObject obj=new JSONObject();
obj.put("id", 1);
obj.put("name", "name");
obj.put("password", "password");
System.out.println(obj.toString());
User user = JSON.parseObject(obj.toString(), User.class);
System.out.println(user.getName());
}
6.2 JSON数组转Java集合
/**
* json对象数组转Java集合
*/
public static void lstJsonObjConvertList() {
JSONArray objArr=new JSONArray();
JSONObject obj01=new JSONObject();
obj01.put("id", 1);
obj01.put("name", "name");
obj01.put("password", "password");
objArr.add(obj01);
JSONObject obj02=new JSONObject();
obj02.put("id", 2);
obj02.put("name", "name");
obj02.put("password", "password");
objArr.add(obj02);
System.out.println(objArr.toString());
List<User> lstUser = JSONArray.parseArray(objArr.toString(), User.class);
for(User user:lstUser) {
System.out.println(user.getId());
}
}
7 XML与Map之间的转换
7.1 Map转XML
public static String convertMapToXml(Map<String,Object> param) {
StringBuffer strParam=new StringBuffer();
strParam.append("<xml>");
strParam.append("<request>");
for(Entry<String,Object> entry:param.entrySet()) {
strParam.append("<"+entry.getKey()+">");
strParam.append(entry.getValue());
strParam.append("</"+entry.getKey()+">");
}
strParam.append("</request>");
strParam.append("</xml>");
return strParam.toString();
}
示例:
<xml><request><a>1</a><b>2</b><c>3</c></request></xml>
7.2 XML转Map。
需要添加依赖:
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.9.3</version>
</dependency>
@SuppressWarnings("unchecked")
public static Map<String,Object> convertXmlToMap(String xmlData){
try {
return new XmlMapper().readValue(xmlData, HashMap.class);
} catch (Exception e) {
// TODO Auto-generated catch block
return null;
}
}
参考博客:
http://www.cnblogs.com/hoojo/archive/2011/04/22/2024628.html
http://rsy.iteye.com/blog/2303323
未完待续。。。