一、JSON语法:
1.数组:[1,2,3];//数组里面可以放对象;
2.对象:{"key":value,"key":value};//对象里面可以放数组;
二、fastjson解析:
1.导包:fastjson.jar;
2.解析:
(1)序列化:String toJSONString(Object object);
@WebServlet("/jsonTest") public class JsonTest extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { User user = new User(); user.setName("zs"); user.setAge(12); String userStr = JSON.toJSONString(user); resp.getWriter().print(userStr); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doGet(req, resp); } }
(2)反序列化:
1.普通对象:
1)class<?> JSON.parseObject(String, class<?>.class);
@WebServlet("/jsonTest") public class JsonTest extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String userStr = "{\"name\":\"zs\",\"age\":13}"; User user = JSON.parseObject(userStr, User.class); System.out.println(user); } }
2)List<Object> JSON.parseArray(String, Object.class)
@WebServlet("/jsonTest") public class JsonTest extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String usersStr = "[{\"name\":\"zs\",\"age\":12},{\"name\":\"ls\",\"age\":16}]"; List<User> users = JSON.parseArray(usersStr, User.class); for (Iterator<User> iterator = users.iterator(); iterator.hasNext(); ) { User user = iterator.next(); System.out.println(user); } } }
2.Lsit,set集合:
1)将json转换成List:
List list = JSON.parseObject(json,new TypeReference<ARRAYLIST>(){});
@WebServlet("/jsonTest") public class JsonTest extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String usersStr = "[{\"name\":\"zs\",\"age\":12},{\"name\":\"ls\",\"age\":16}]"; List<User> users = JSON.parseObject(usersStr, new TypeReference<List<User>>() {}); for (Iterator<User> iterator = users.iterator(); iterator.hasNext(); ) { User user = iterator.next(); System.out.println(user); } } }
2)将json转换成Set:
Set set = JSON.parseObject(json,new TypeReference<HASHSET>(){});
@WebServlet("/jsonTest") public class JsonTest extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String usersStr = "[{\"name\":\"zs\",\"age\":12},{\"name\":\"ls\",\"age\":16}]"; Set<User> users = JSON.parseObject(usersStr, new TypeReference<Set<User>>() {}); for (Iterator<User> iterator = users.iterator(); iterator.hasNext(); ) { User user = iterator.next(); System.out.println(user); } } }
三、Gson解析:
1.导包:google-gson.jar;
2.解析:
(1)序列化:
Gson gson = new Gson();
String json = gson.toJson(obj);
@WebServlet("/jsonTest") public class JsonTest extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { User user = new User(); user.setName("zs"); user.setAge(12); Gson gson = new Gson(); String userStr = gson.toJson(user); resp.getWriter().print(userStr); } }
(2)反序列化:
1)普通对象
Gson gson = new Gson();
Book book = gson.fromJson(json, Book.class);
@WebServlet("/jsonTest") public class JsonTest extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String userStr = "{\"name\":\"zs\",\"age\":13}"; Gson gson = new Gson(); User user = gson.fromJson(userStr, User.class); System.out.println(user); } }
2)Lsit,set集合
//将json转换成List
List list = gson.fromJson(json,new TypeToken<List>() {}.getType());
@WebServlet("/jsonTest") public class JsonTest extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String usersStr = "[{\"name\":\"zs\",\"age\":12},{\"name\":\"ls\",\"age\":16}]"; Gson gson = new Gson(); List list = gson.fromJson(usersStr, new TypeToken<List>() {}.getType()); for (Iterator iterator = list.iterator(); iterator.hasNext(); ) { Object user = iterator.next(); System.out.println(user); } } }
//将json转换成Set
Set set = gson.fromJson(json,new TypeToken<Set>() {}.getType());
@WebServlet("/jsonTest") public class JsonTest extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String usersStr = "[{\"name\":\"zs\",\"age\":12},{\"name\":\"ls\",\"age\":16}]"; Gson gson = new Gson(); Set set =gson.fromJson(usersStr, new TypeToken<Set>() {}.getType()); for (Iterator iterator = set.iterator(); iterator.hasNext(); ) { Object user = iterator.next(); System.out.println(user); } } }
三、js序列化/反序列化:
1.序列化:JSON.stringify(obj[arr]);//把对象或数组转为String;
2.反序列化:JSON.parse(字符串); //把字符串转换为javascript对象;
//非标字符串:使用eval("("+字符串+")");
3.json字符串:
1)标准:var str = '{"sid":"001","sname":"张三","sage":17,"ssex":"男"}';
//JSON.parse(str);
2)非标:var str = "{'sid':'001','sname':'张三','sage':17,'ssex':'男'}";
//eval("("+str+")");
友情链接: 黑马模板网