阿里fastJson:java对象->json字符串 json.tpJsonString
json字符串->java对象 JSONObject
package com.fastjson;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
/**
* Servlet implementation class Json
*/
@WebServlet("/Json")
public class Json extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Json() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Account account1=new Account(1, "p1", 1000);
Account account2=new Account(2, null, 1000);
//注意事项:
// 1 @JSONField(serialize=false)//不序列化 表示不会转json
// 2 控制null输出
// S
//阿里:fastJson
String onejson=JSON.toJSONString(account2);
System.out.println(onejson);
//创建集合
ArrayList<Account> accounts=new ArrayList<Account>();
accounts.add(account1);
accounts.add(account2);
// String jsonstring=JSON.toJSONString(accounts);//不能解决null和重复问题
String jsons=JSON.toJSONString(accounts,SerializerFeature.WriteMapNullValue,SerializerFeature.PrettyFormat,SerializerFeature.DisableCircularReferenceDetect);
System.out.println(jsons);
//一个对象
Account oneAccount=JSON.parseObject(onejson, Account.class);
System.out.println(oneAccount);
//多个对象
List<Account> as=JSON.parseArray(jsons, Account.class);
System.out.println(as.size());
for (Account account : as) {
System.out.println(account);
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}