1. 程式人生 > 其它 >json轉java物件,java物件轉json,自定義工具類封裝物件與寫給客戶端

json轉java物件,java物件轉json,自定義工具類封裝物件與寫給客戶端

技術標籤:javajson

jackson:apache
jar包
在這裡插入圖片描述

一.jackson的方法
ObjectMapper類的靜態方法:
1.將json轉物件的方法:
new ObjectMapper().readValue("",Class<Object>clazz);返回java物件。

第一個引數用request.getInputStream()獲取客戶端傳來的值。

第二個引數是javabean的Class物件。

2.將物件轉json的方法:
new ObjectMapper().writeValueAsString(Object);返回json字串。
再配合response.getWrite().write(json字串);將json字串發給客戶端。
.將json字串轉java物件
 LinkMan  linkMan = new ObjectMapper().readValue("{\"id\":100,\"name\":\"zxxx\",\"sex\":\"男\",\"age\":40,\"address\":\"長沙\",\"qq\":\"20000\",\"email\":\"[email protected]
\"}"
, LinkMan.class); System.out.println(linkMan);//LinkMan{id=100, name='zxxx', sex='男', age=40, address='長沙', qq='20000', email='[email protected]'}.將java物件轉成json字串,{}表示json,json由多個"name":value,組成。 LinkMan linkMan = new LinkMan(1,"zzz","男",100,"長沙"
,"10000","[email protected]"); try { String s = new ObjectMapper().writeValueAsString(linkMan); System.out.println(s);//{"id":1,"name":"zzz","sex":"男","age":100,"address":"長沙","qq":"10000","email":"[email protected]"} } catch (JsonProcessingException e) { e.printStackTrace(); }

二.fastjson:阿里巴巴
jar包:

在這裡插入圖片描述

JSON抽象類的靜態方法:
1.將json轉物件的方法:JSON.parseObject("",Class<Object>);返回物件。
第一個引數用request.getInputStream()獲取客戶端傳來的值。

第二個引數是javabean的Class物件。

2.將物件轉json的方法:JSON.toJSONString(Object);返回json字串。
再配合response.getWrite().write(json字串);將json字串發給客戶端。
LinkMan linkMan=JSON.parseObject("{\"id\":100,\"name\":\"zxxx\",\"sex\":\"男\",\"age\":40,\"address\":\"長沙\",\"qq\":\"20000\",\"email\":\"[email protected]\"}",LinkMan.class);
        System.out.println(linkMan);//LinkMan{id=100, name='zxxx', sex='男', age=40, address='長沙', qq='20000', email='[email protected]'}
 
LinkMan linkMan = new LinkMan(1,"zzz","男",100,"長沙","10000","[email protected]");
        System.out.println(JSON.toJSONString(linkMan));//{"address":"長沙","age":100,"email":"[email protected]","id":1,"name":"zzz","qq":"10000","sex":"男"}
       

自定義工具類:
簡化了一點點。

package utils;

import com.alibaba.fastjson.JSON;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @Description:
 * @Author: yp
 */
//fastjson
public class JsonUtils {
    /**
     * 響應結果
     * @param response
     * @param obj
     * @throws IOException
     */
    public static void printResult(HttpServletResponse response, Object obj) throws IOException {
       response.setContentType("application/json;charset=utf-8");
        JSON.writeJSONString(response.getWriter(),obj);
    }
    /**
     * 把json轉成物件
     * @param request
     * @param tClass
     * @param <T>
     * @return
     * @throws IOException
     */
    public static <T> T parseJSON2Object(HttpServletRequest request, Class<T> tClass) throws IOException{
        // 把表單資料之間轉物件
        return JSON.parseObject(request.getInputStream(),tClass);
    }
}

servlet呼叫工具類方法:

1.獲取json並封裝到JavaBean裡:
LinkMan linkman =JsonUtils.parseJSON2Object(request,LinkMan.class);

2.將Java物件轉成json響應給客戶端
JsonUtils.printResult(response,linkman);
//封裝了
//1.java物件轉json字串
//String s=JSON.toJSONString(linkman);
//2.將json字串響應給客戶端
//response.getwrite().write(s)