Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。那fastjson如何解析json?下面来我们就来给大家讲解一下fastjson解析json的方法。
A、服务器端将数据转换成json字符串
首先、服务器端项目要导入阿里巴巴的fastjson的jar包至builtPath路径下,这些可以到fastjson官网下载.
然后将数据转为json字符串,核心函数是:
public static String createJsonString(Object value) { String alibabaJson = JSON.toJSONString(value); return alibabaJson; }
B、客户端将json字符串转换为相应的javaBean
首先客户端也要导入fastjson的两个jar包
1、客户端获取json字符串
public class HttpUtil { public static String getJsonContent(String urlStr) { try { // 获取HttpURLConnection连接对象 URL url = new URL(urlStr); HttpURLConnection httpConn = (HttpURLConnection) url .openConnection(); // 设置连接属性 httpConn.setConnectTimeout(3000); httpConn.setDoInput(true); httpConn.setRequestMethod("GET"); // 获取相应码 int respCode = httpConn.getResponseCode(); if (respCode == 200) { return ConvertStream2Json(httpConn.getInputStream()); } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return ""; } private static String ConvertStream2Json(InputStream inputStream) { String jsonStr = ""; // ByteArrayOutputStream相当于内存输出流 ByteArrayOutputStream out = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; // 将输入流转移到内存输出流中 try { while ((len = inputStream.read(buffer, 0, buffer.length)) != -1) { out.write(buffer, 0, len); } // 将内存流转换为字符串 jsonStr = new String(out.toByteArray()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return jsonStr; } }
2、使用泛型获取javaBean(核心函数)
public static T getPerson(String jsonString, Class cls) { T t = null; try { t = JSON.parseObject(jsonString, cls); } catch (Exception e) { // TODO: handle exception } return t; } public static List getPersons(String jsonString, Class cls) { List list = new ArrayList(); try { list = JSON.parseArray(jsonString, cls); } catch (Exception e) {} return list; } public static List > listKeyMaps(String jsonString) { List > list = new ArrayList > (); try { list = JSON.parseObject(jsonString , new TypeReference >> () {}); } catch (Exception e) { // TODO: handle exception } return list; } }
fastjson哪些特性?
1.提供服务器端、安卓客户端两种解析工具,性能表现较好。
2.提供了 toJSONString() 和 parseObject() 方法来将 Java 对象与 JSON 相互转换。调用toJSONString方 法即可将对象转换成 JSON 字符串,parseObject 方法则反过来将 JSON 字符串转换成对象。
3.允许转换预先存在的无法修改的对象(只有class、无源代码)。
4.Java泛型的广泛支持。
5.允许对象的自定义表示、允许自定义序列化类。
6.支持任意复杂对象(具有深厚的继承层次和广泛使用的泛型类型)。
总之Fastjson 可以操作任何 Java 对象,即使是一些预先存在的没有源码的对象。另外如果大家想要解析json,我们可以参考以上文章!最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。
推荐阅读: