ajax请求返回json数据--Go语言学习笔记

ajax请求返回json数据–Go语言学习笔记

JSON简介

  • 轻量级数据传输格式(语法)

  • 基于JavaScript语言,是在JavaScript数组和对象基础上发展而来,和XML类似,都是独立语言

  • 总体上分为两种:

    {"key":value,"key":value}
    
    • 一种是JSONObject(json对象)
    [{"key":value},{"key":value}]//切片类型的结构体
    
    • 一种是JSOONArray(json数组),包含多个JSONObject
  • key是string类型,value是string类型(值被双引号包围),也可以是数值或布尔类型或JSONObject或JSONArray类型

{“Name”:“ZhangMei”;“Sex”:“Female”}

定义了一个对象,该对象有两个属性即Name和Sex

  • 可以使用Go语言标准库中encoding/json包下的Marsha()或Unmarshal()把结构体对象转换成[]byte或把[]byte中信息写入到结构体对象中
    • 在转换过程中结构体属性tag中定义了json中的key,属性的值就是json中的value
    • 如果属性没有配置tag,属性就是json中的key
  • 属性的tag可以进行下面的配置

定义结构体

type User struct{
	Name string
	Age int
}

Web端的显示代码

func welcome2(w http.ResponseWriter,r*http.Request){
	t,_:=template.ParseFiles("view/H8.html")
	t.Execute(w,nil)
}
func showUser(w http.ResponseWriter,r*http.Request){
	us:=make([]User,0)
	us=append(us,User{"张三",12})
	us=append(us,User{"纸老虎",13})
	us=append(us,User{"大老虎",14})
	us=append(us,User{"张无虚",18})
	b,_:=json.Marshal(us)
	w.Header().Set("Content-Type","application/json;charset=utf-8")//b由byte数组变为json数组
	fmt.Fprintln(w,string(b))
}
func main(){
	server:=http.Server{Addr:":8899"}
	http.Handle("/static/",http.StripPrefix("/static/",http.FileServer(http.Dir("static"))))//加载静态数据
	http.HandleFunc("/",welcome2)
	http.HandleFunc("/showUser",showUser)
	server.ListenAndServe()
}
   <head>
    <meta charset="UTF-8">
    <title>ajax</title>
  <script type="text/javascript" src="/static/js/jquery-1.7.2.js"></script>
  <script type="text/javascript">
    $(function (){
      $("button").click(function(){
       $.post("/showUser",function (data){
         var result="";
         for(var i=0;i<data.length;i++){
           result+="<tr>";
           result+="<td>"+data[i].Name+"</td>";
           result+="<td>"+data[i].Age+"</td>";
           result+="</tr>"
         }
         $("#mytbody").html(result);
       })
      })
    })
  </script>
</head>
<body>
<button>加载数据</button>
<table  border="1">
  <tr>
    <td>姓名</td>
    <td>年龄</td>
  </tr>
  <tbody id="mytbody">

  </tbody>
</table>
</body>
上一篇:docker容器部署maven项目(utf-8)后,jsp有的页面中文乱码


下一篇:【VS开发】循序渐进学习使用WINPCAP(一)