FastJson解析FastJson解析转自:http://blog.sina.com.cn/s/blog_7ffb8dd501013qas.html阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的JavaJsonparser。包括自称最快的JackJson;功能强大,完全支持Ja
FastJson解析
转自:http://blog.sina.com.cn/s/blog_7ffb8dd501013qas.html
阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征: 速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson; 功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)
Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
public
static
final
Object parse(String text);
// 把JSON文本parse为JSONObject或者JSONArray
public
static
final
JSONObject parseObject(String text);
// 把JSON文本parse成JSONObject
public
static
final
T parseObject(String text, Class clazz);
// 把JSON文本parse为JavaBean
public
static
final
JSONArray parseArray(String text);
// 把JSON文本parse成JSONArray
public
static
final
List parseArray(String text, Class clazz);
//把JSON文本parse成JavaBean集合
public
static
final
String toJSONString(Object object);
// 将JavaBean序列化为JSON文本
public
static
final
String toJSONString(Object object,
boolean
prettyFormat);
// 将JavaBean序列化为带格式的JSON文本
public
static
final
Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。
二、FastJson解析JSON步骤
A、服务器端将数据转换成json字符串
首先、服务器端项目要导入阿里巴巴的fastjson的jar包至builtPath路径下(这些可以到fastjson官网下载:http://code.alibabatech.com/wiki/display/FastJSON/Home-zh
)
然后将数据转为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解析 分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。 如需转载请保留出处:https://bianchenghao.cn/12365.html