JSON

JSON

1)JSON数据格式

1. JSON介绍

JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

在没有学习json之前,也有一种技术用于交换数据。 xml

2. JSON语法格式

JSON对象的语法有三种:对象、数组、混合模式

类型 语法 解释
对象类型 其中name是字符串类型,而value是任意类型
数组类型 [value,value,value...] 其中value是任意类型
混合类型 [{},{}... ...] 或 合理包裹嵌套对象类型和数组类型

3. JSON格式书写规范

1.使用{}和[]书写,{}表示对象类型,[]表示数组类型
2.对象类型中每组数据之间用逗号隔开,每组中的关键字与值之间用冒号隔开
3.数组类型中每个值之间用逗号隔开,最后一个值后面不要加逗号

/json表达式里面的符号全都是英文!!!!/

2)JSON工具使用

JSON在线解析工具:http://www.bejson.com/
作用:
1.校验JSON数据的语法是否正确
2.将不规范的JSON格式数据进行格式化

代码:

jsp
<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2021/9/13
  Time: 14:00
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

用户名: <span id="name"></span><br>
年龄: <span id="age"></span><br>
性别: <span id="sex"></span><br>
<button type="button" onclick="show()">显示用户数据</button>

<hr>

<div id="message"></div>

<hr>


</body>
<script src="js/jquery-1.8.3.js"></script>
<script>

    function show(){
        //对象
        // $.post("testJson",function(data){
        //     $("#name").html(data.name);
        //     $("#age").html(data.age);
        //     $("#sex").html(data.sex);
        // },"json");

        //数组
        // $.post("testJson",function(data){
        //    $(data).each(function(i,e){
        //         $("#message").append("<p>"+e+"</p>");
        //    })
        // },"json");

        //数组中有对象  混合模式
        $.post("testJson",function(data){
            $(data).each(function(i,e){
                console.log(e.name,e.age,e.sex);
            })
        },"json");

    }
</script>
</html>



-----------------------------------------------------------------------------------------
      
servlet

package com.offcn.web;

import com.offcn.entity.User;

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 java.io.IOException;

@WebServlet("/testJson")
public class TestJsonServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8");
        //resp.getWriter().print(new User("张三",20,"男"));
        //resp.getWriter().print("{\"name\":\"张三\",\"age\":20,\"sex\":\"男\"}");
        //resp.getWriter().print("[\"zhangsan\", \"lisi\", \"wangwu\"]");
        //向前端 响应多个user
        resp.getWriter().print("[{\"name\":\"zhangsan\",\"age\":10,\"sex\":\"男\"},{\"name\":\"lisi\",\"age\":20,\"sex\":\"男\"},{\"name\":\"wangwu\",\"age\":30,\"sex\":\"男\"}]");

    }
}


      

3)JSON数据的应用

json的转换工具是通过java封装好的一些jar工具包,直接将java对象或集合转换成json格式的字符串。

1. 常见的json转换工具

工具名称 介绍
Jsonlib Java 类库,需要导入的jar包较多
Gson google提供的一个简单的json转换工具
Fastjson alibaba技术团队提供的一个高性能的json转换工具
Jackson 开源免费的json转换工具,springmvc转换默认使用jackson

2. 使用步骤

  1. 导入json相关jar包
  2. 创建java对象或集合
  3. 使用jackson的ObjectMapper对象的writeValueAsString方法进行转换 (可以是单个对象,也可以是集合)

3. 转换代码实现

package com.offcn;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.offcn.entity.User;

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 java.io.IOException;
import java.util.Arrays;
import java.util.List;

@WebServlet("/demo6")
public class DemoServlet6 extends HttpServlet {

   @Override
   protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            List<User> list = Arrays.asList(new User(1,20,"abc"),
                                            new User(2,30,"bbb"),
                                            new User(3,30,"ccc"));
    
            ObjectMapper objectMapper = new ObjectMapper();
            //调用实例方法 writeValueAsString
            String json = objectMapper.writeValueAsString(list);
            //System.out.println(json);
            resp.getWriter().print(json);
        }
    }
    
    ```
posted @ 2021-09-20 20:59  HJ0101  阅读(64)  评论(0编辑  收藏  举报