日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSON学习

發布時間:2023/12/14 javascript 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSON学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • JSON
    • 一:JSON簡介
      • 1.什么是JSON?
      • 2.JSON語法規則:
      • 3.利用json存儲員工信息表:
      • 4.Javascript訪問JSON對象
      • 5.JS中將字符串轉換為JSON
      • 6.JS中將JSON轉換為字符串
    • 二:FastJSON應用
      • 1.FastJSON的介紹與下載安裝:
      • 2.FastJSON對象序列化與反序列化
      • 3.FastJSON對象數組序列化與反序列化
      • 4.什么是JavaBean?

JSON

一:JSON簡介

1.什么是JSON?

  • JavaScript Object Notation(JavaScribt對象表示法)
  • JSON是輕量級的文本數據交換格式
  • JSON 獨立于語言,具有自我描述性,更易理解

2.JSON語法規則:

  • 數據由健(key)/值(value)成對描述,由逗號分割

  • 大括號代表一個完整的對象,擁有多個健/值對

  • 中括號保存數組,多個對象之間使用逗號分隔示例:(鍵和值都用雙引號包裹,多個鍵值對使用逗號分隔)

{“sites”:[ {"name":"慕課網""url":"www.imooc.com"}, {"name":"百度","url":"www.baidu.com"} ] }

3.利用json存儲員工信息表:

[{"empno": 7369,"ename": "李寧","job": "軟件工程師","hiredate": "2017-05-12","salary": 13000,"dname": "研發部"},{"empno": 7499,"ename": "王樂","job": "客戶經理","hiredate": "2017-04-22","salary": 10000,"dname": "市場部","customers": [{"cname": "李東"},{"cname": "劉楠"}]} ]

4.Javascript訪問JSON對象

javascript天然支持json格式,可以把json內容粘貼到html里的script。

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript">var json = [{"empno": 7369,"ename": "李寧","job": "軟件工程師","hiredate": "2017-05-12","salary": 13000,"dname": "研發部"},{"empno": 7499,"ename": "王樂","job": "客戶經理","hiredate": "2017-04-22","salary": 10000,"dname": "市場部","customers": [{"cname": "李東"},{"cname": "劉楠"}]}];//在瀏覽器控制臺中對json內容進行輸出console.log(json);for(var i = 0 ; i < json.length ; i++){var emp = json[i];document.write("<h1>");document.write(emp.empno);document.write("," + emp.ename);document.write("," + emp.job);document.write("," + emp.hiredate);document.write("," + emp.salary);document.write("," + emp.dname);document.write("</h1>");if(emp.customers != null){document.write("<h2>---")for(var j = 0 ; j < emp.customers.length ; j++){var customer = emp.customers[j];document.write(customer.cname + ",")}document.write("</h2>")}} </script> </head> <body></body> </html>

5.JS中將字符串轉換為JSON

JSON與字符串互相轉換:

  • JSON.parse()方法將字符串轉化為JSON對象
  • JSON.stringify()方法,將JSON對象轉換為字符串

注意:JSON對象,是瀏覽器內置對象(ie8以下版本瀏覽器不支持),javascript可以直接調用

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>字符串轉JSON</title><script type="text/javascript">var str = "{\"class_name\":\"五年級四班\"}";//str.enamevar json = JSON.parse(str);console.log(str);console.log(json);document.write("班級:" + json.class_name);</script> </head> <body></body> </html>

6.JS中將JSON轉換為字符串

  • JS提供了一個方法JSON.parse()方法將字符串轉換為JSON對象,用的很多,主要是與Ajax配合。

  • JSON.stringify()方法將JSON對象轉換為字符串。JSON對象JavaScript可以直接調用,用的比較少。

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JSON轉字符串</title> <script type="text/javascript">var json1 = {"class_name" : "五年級四班"};var str1 = JSON.stringify(json1);console.info(json1);console.info(str1);var json2 = {};json2.class_name = "五年級五班";json2.floor = "逸夫樓四層";json2.teacher = "王義夫";console.info(json2); </script> </head> <body></body> </html>

二:FastJSON應用

1.FastJSON的介紹與下載安裝:

JSON與Java交互:

  • Java的JSON工具包還有FastJson(國內阿里巴巴開發)、Jackson、Gson(谷歌開發)、Json-lib
  • FastJson是阿里巴巴著名的JSON序列化與反序列工具包
  • FastJson國內擁有大量使用者,擁有API簡單,效率高等優點

下載方式:

通過github下載:fastjson-1.2.52;

2.FastJSON對象序列化與反序列化

序列化與反序列化:

  • Java序列化就是指把Java對象轉換為字節序列的過程。
  • Java反序列化就是指把字節序列恢復為Java對象的過程。

JSON注解:

  • @JSONField(format=“yyyy-MM-dd HH:mm:ss SSS”):以年-月-日 時-分-秒 毫秒的格式輸出日期;

  • @JSONField(name="")將此注解標記的屬性的名稱修改為name后面的內容;

  • @JSONField(serialize = false)對此注解標記的屬性不做序列化操作(JSON字符串中不會轉換該屬性);

實體類:

package json;import com.alibaba.fastjson.annotation.JSONField;import java.util.Date;public class Employee {private Integer empno;private String ename;private String job;//@JSONField(format="yyyy-MM-dd HH:mm:ss SSS")@JSONField(name = "hiredate" , format="yyyy-MM-dd")private Date hdate;private Float salary;@JSONField(serialize = false)private String dname;public Integer getEmpno() {return empno;}public void setEmpno(Integer empno) {this.empno = empno;}public String getEname() {return ename;}public void setEname(String ename) {this.ename = ename;}public String getJob() {return job;}public void setJob(String job) {this.job = job;}public Date getHdate() {return hdate;}public void setHdate(Date hdate) {this.hdate = hdate;}public Float getSalary() {return salary;}public void setSalary(Float salary) {this.salary = salary;}public String getDname() {return dname;}public void setDname(String dname) {this.dname = dname;}}

測試代碼:

package json;import com.alibaba.fastjson.JSON;import java.util.Calendar;public class FastJsonSample1 {public static void main(String[] args) {Employee employee = new Employee();employee.setEmpno(4488);employee.setEname("王曉東");employee.setJob("客戶經理");employee.setSalary(10000f);employee.setDname("市場部");Calendar c = Calendar.getInstance();c.set(2019, 0, 30, 0, 0, 0);employee.setHdate(c.getTime());//FastJSON中提供了JSON對象,完成對象與JSON字符串的互相轉換String json = JSON.toJSONString(employee);System.out.println(json);Employee emp = JSON.parseObject(json, Employee.class);System.out.println(emp.getEname());} }

3.FastJSON對象數組序列化與反序列化

package json;import com.alibaba.fastjson.JSON;import java.util.ArrayList; import java.util.List;public class FastJsonSample2 {public static void main(String[] args) {List emplist = new ArrayList();for (int i = 1 ; i <= 100 ; i++) {Employee employee = new Employee();employee.setEmpno(4488 + i);employee.setEname("員工" + i);emplist.add(employee);}String json = JSON.toJSONString(emplist);System.out.println(json);List<Employee> emps = JSON.parseArray(json , Employee.class);for(Employee e : emps) {System.out.println(e.getEmpno() + ":" + e.getEname());}} }

4.什么是JavaBean?

簡單籠統的說JavaBean是一種符合一定規范編寫的Java類,它不是一種技術,而是一種規范 , 表達實體和信息的規范。大家針對這種規范,總結了很多開發技巧、工具函數。符合這種規范的類,可以被其它的程序員或者框架使用。
它的方法命名,構造及行為必須符合特定的約定:
1、這個類必須具有一個公共的(public)無參構造函數;
2、所有屬性私有化(private);
3、私有化的屬性必須通過public類型的方法(getter和setter)暴露給其他程序,并且方法的命名也必須遵循一定的命名規范。
4、這個類應是可序列化的。(比如可以實現Serializable 接口)

Employee就是一個JavaBean,它表達了一個員工所包含的信息,例如編號、名稱、崗位、入職時間等信息,描述了一個員工的基本信息。

總結

以上是生活随笔為你收集整理的JSON学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。