zoukankan      html  css  js  c++  java
  • JSON

    JSON

    1)JSON数据格式

    1. JSON介绍

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

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

    2. JSON语法格式

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

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

    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);
            }
        }
        
        ```
  • 相关阅读:
    基于python+django+mysql的接口测试平台
    firefox没有装在C盘,webdriver启动firefox时报错
    Python知识点面试题
    Python面试题整理
    Python程序猿面试杂谈
    Python面试-websocket及web框架
    Python面试-DB相关
    Python面试简介及并行并发
    flink-demo2
    flink-table demo
  • 原文地址:https://www.cnblogs.com/conglingkaishi/p/15315220.html
Copyright © 2011-2022 走看看