JSON

一、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);
    }
}

      2List<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+")");

 

posted @ 2019-08-02 17:48  开拖拉机的拉风少年  阅读(263)  评论(0编辑  收藏  举报