不多说废话了,比较简单,直接上代码吧,都是在本人电脑上跑过的。
说明下还有个Student的实体类没上传了,随便搞几个属性测试下就可以。
转换类:
import java.io.IOException; import java.util.Collections; import java.util.List; import net.sf.json.JSON; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.JSONSerializer; public class HTTPHelper { private static String jsonStr = "{\"mobilePhone\":\"13510398031\",\"userName\":\"李四\"}"; private static String jsonStr2 = "[{\"mobilePhone\":\"13510398031\",\"userName\":\"李四\"},{\"mobilePhone\":\"13824568145\",\"userName\":\"张三\"}]"; private static final JSON buildJSON(String jsonStr) throws IOException { return JSONSerializer.toJSON(jsonStr); } //字符串 转 JSONObject public static final JSONObject buildJSONObject() throws IOException { return (JSONObject) buildJSON(jsonStr); } //字符串(数组) 转 JSONArray public static final JSONArray buildJSONArray() throws IOException { return (JSONArray) buildJSON(jsonStr2); } // 字符串 转 JSONObject public static final JSONObject buildJSONObjectFromParameter() throws IOException { return JSONObject.fromObject(jsonStr); } // 字符串(数组) 转 JSONArray public static final JSONArray buildJSONArrayFromParameter() throws IOException { return JSONArray.fromObject(jsonStr2); } //Json字符串 转 实体对象 public static final <T> T getObject(Class<T> clazz) throws IOException { return com.alibaba.fastjson.JSONObject.parseObject(jsonStr, clazz); } //Json字符串 转 数组对象 @SuppressWarnings("unchecked") public static final <T> List<T> getList(Class<T> clazz) throws IOException { List<T> list = com.alibaba.fastjson.JSONArray.parseArray(jsonStr2, clazz); return list == null ? Collections.EMPTY_LIST : list; } // 对象 转 Json字符串 public static final String getJsonString(Object o) throws IOException { return com.alibaba.fastjson.JSONObject.toJSONString(o); } // 对象 转 com.alibaba.fastjson.JSONObject对象 public static final com.alibaba.fastjson.JSONObject getJson(Object o) throws IOException { return (com.alibaba.fastjson.JSONObject)com.alibaba.fastjson.JSONObject.toJSON(o); } //数组对象 转 Json字符串 public static final String getJsonArrayString(Object o) throws IOException { return com.alibaba.fastjson.JSONArray.toJSONString(o); } }
测试代码:
import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import com.user.Student; import com.utils.HTTPHelper; public class HTTPHelperTest { public static void main(String[] args) throws IOException { // 字符串 转 JSONObject JSONObject jsonObject = HTTPHelper.buildJSONObjectFromParameter(); String account = jsonObject.getString("mobilePhone"); String name = jsonObject.getString("userName"); System.out.println(account+"======================"+name); // 字符串(数组) 转 JSONArray JSONArray jsonArray = HTTPHelper.buildJSONArrayFromParameter(); System.out.println(jsonArray); Iterator iterator = jsonArray.iterator(); while (iterator.hasNext()) { JSONObject jsonObj = (JSONObject) iterator.next(); System.out.println(jsonObj.getString("userName")); } // 字符串(数组) 转 JSONArray JSONArray jsonArr = HTTPHelper.buildJSONArray(); System.out.println(jsonArr); Iterator iterator1 = jsonArr.iterator(); while (iterator1.hasNext()) { JSONObject jsonObj = (JSONObject) iterator1.next(); System.out.println(jsonObj.getString("userName")); } //Json字符串 转 实体对象 Student s = HTTPHelper.getObject(Student.class); System.out.println(s.getUserName()); //Json字符串 转 数组对象 List<Student> list = HTTPHelper.getList(Student.class); System.out.println(list.size()); for(int i=0;i<list.size();i++){ System.out.println(list.get(i).getUserName()); } // 对象 转 Json字符串 Student stu = new Student(); stu.setAge(45); stu.setBirthDay(new Date()); List<String> hobbiy = new ArrayList<String>(); hobbiy.add("唱歌");hobbiy.add("跳舞");hobbiy.add("爬山"); stu.setHobbiy(hobbiy); stu.setUserName("张三"); System.out.println(HTTPHelper.getJsonString(stu)); // 对象 转 com.alibaba.fastjson.JSONObject对象 com.alibaba.fastjson.JSONObject jsonObj = HTTPHelper.getJson(stu); System.out.println(jsonObj.getString("userName")); //数组对象 转 Json字符串 List<Student> listStudent = new ArrayList<Student>(); listStudent.add(stu); System.out.println(HTTPHelper.getJsonArrayString(listStudent)); } }
使用的主要jar包:
fastjson-1.2.5.jar
json-lib-2.4-jdk15.jar