1. 程式人生 > >Json資料格式和轉換外掛

Json資料格式和轉換外掛

json是一種與語言無關的資料交換的格式,作用:

使用ajax進行前後臺數據交換

移動端與服務端的資料交換

1.Json的格式與解析

json有兩種格式:

1)物件格式:{"key1":obj,"key2":obj,"key3":obj...}

2)陣列/集合格式:[obj,obj,obj...]

例如:user物件 用json資料格式表示

{"username":"zhangsan","age":28,"password":"123","addr":"北京"}

List<Product> 用json資料格式表示

[{"pid":"10","pname":"小米4C"},{},{}]

  var json={
"key1":"values",
"key2":{"firstname":"張","lastname":"三豐","age":100},
"key3":[
          {"name":"小雙","age":28,"addr":"揚州"},
          {"name":"小雙","age":18,"addr":"揚州"},
          {"name":"小雙","age":28,"addr":"柳州"}
          ]  
}
 
alert(json.key2.lastname);
alert(json.key3[3].addr);
 

注意:物件格式和陣列格式可以互相巢狀

注意:json的key是字串  jaon的value是Object

json的解析:

json是js的原生內容,也就意味著js可以直接取出json物件中的資料

2.Json的轉換外掛

java的物件或集合轉成json形式字串

json的轉換外掛是通過java的一些工具,直接將java物件或集合轉換成json字串。

常用的json轉換工具有如下幾種:

1)jsonlib

2)Gson:google   用的較多

3)fastjson:阿里巴巴   比較好

  

package com.itheima.web;

import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
import com.itheima.domain.Product;
import com.itheima.service.ProductService;
import net.sf.json.JSONArray;
public class SsearchWordServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//獲得關鍵字
String word=request.getParameter("word");

//查詢該關鍵字的所有商品
ProductService service=new ProductService();
List<Object> productList=null;
try {
  productList=service.findproductWord(word);
} catch (SQLException e) {
e.printStackTrace();
}

//使用json的轉換工具物件或者集合json格式的字串
/*JSONArray fromObject = JSONArray.fromObject(productList);
String string = fromObject.toString();
System.out.println(string);*/

Gson gson=new Gson();
String json = gson.toJson(productList);

response.setContentType("text/html;charset=UTF-8");

response.getWriter().write(json);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}

}