json轉java物件,java物件轉json,自定義工具類封裝物件與寫給客戶端
阿新 • • 發佈:2020-12-09
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)