<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Json入門 [TOC] ## 導學 針對于各位同學,在前端課程中已經學習過Json,所以本章主要講解Json與Java的交互。 ## Json語法 JavaScript Object Notation(JavaScript對象表示法),JSON是輕量級的文本數據交互格式,JSON獨立于語言,具有自我描述性,更易于理解逐漸替代了xml。 JSON語法規則: 1. 數據由鍵(key)/值(value)描述,由逗號分隔。 2. 大括號代表一個完整的對象,擁有多個鍵/值對。 3. 中括號保存數組,多個對象之間使用逗號分隔。 4. 復合類型的值只能是數組或對象,不能是函數、日期對象、正則表達式等。 5. 簡單類型的值包括:字符串、數值、布爾值和null(不能使用NaN/undefined)。 6. 字符串必須使用雙引號表示,不能使用單引號,或者沒有雙引號。 7. 對象的鍵必須放在雙引號里。 8. 數組或對象的最后一個成員后面不能加逗號。 ~~~json { "employee": { "市場部": [{ "name": "張三", "salary": 7000, "time": "1999-02-09", "job": "市場營銷專員" }, { "name": "李四", "salary": 9000, "time": "1997-02-09", "job": "市場經理" }], "開發部": [{ "name": "王五", "salary": 9000, "time": "2006-02-09", "job": "Java開發工程師" }, { "name": "孫六", "salary": 12000, "time": "2003-02-09", "job": "項目總監" }], "總經理": { "name": "趙一", "salary": 26000, "time": "199-02-09" } } } ~~~ ## JS中JSON對象和JSON字符串的轉換 >[success] 在數據傳輸中,JSON是以字符串形式傳遞的,而JS操作的是JSON對象 * `JSON.stringify`方法是用于將一個值轉為字符串。該字符串符合 JSON 格式要求,并且可以通過`JSON.parse`方法還原。 * `JSON.parse`方法將 JSON 字符串轉化為對象。 ~~~ var jsonStr = '{"name":"Lisa","password":"123"}'; var jsonObj = {"name":"Lisa","password":"123"}; //String轉化為JSON對象 var jsonObject = JSON.parse(jsonStr); //將對象轉回字符串 var jsonstr = JSON.stringify(jsonObject); ~~~ ## JSON與Java進行交互 我們可以借助工具包,使Json和Java對象之間實現相互的轉換,常用Java的JSON工具包有FastJson(阿里巴巴開發),Jackson ,Gson, Json-lib等。 FastJson是阿里巴巴著名的JSON序列化與反序列工具包,FastJson國內擁有大量的使用者,擁有API簡單 效率高等優點。 Fastjson是阿里巴巴的開源JSON解析庫,它可以解析JSON格式的字符串,支持將Java Bean序列化為JSON字符串,也可以從JSON字符串反序列化到JavaBean。 總之就是提供了對象與JSON 之間的轉換。 該工具包可以通過著名的開源平臺[https://github.com](https://github.com/)找到。 ![](https://img.kancloud.cn/2e/b8/2eb84aa500fb95bb129b8c1187c03eb1_1350x670.png) ![](https://img.kancloud.cn/93/14/93147e106a3ebfa83a7003349ae573fb_1366x605.png) ![](https://img.kancloud.cn/d6/67/d667878f63aadc28e92909ea3039bead_1169x409.png) ![](https://img.kancloud.cn/a0/c7/a0c709d2d14cd0173ad16465e0c23e21_1131x533.png) ### FastJSON對象序列化與反序列化 ~~~ import java.util.Date; import com.alibaba.fastjson.annotation.JSONField; public class Employee { private Integer empno; private String ename; private String job; //@JSONField(format="yyyy-MM-dd HH:mm:ss SSS") //通過FastJson包中設置的注解,設置輸出內容的名稱和格式 @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; } } ~~~ ~~~ import java.util.Calendar; import com.alibaba.fastjson.JSON; 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()); } } ~~~ ### FastJSON對象數組序列化與反序列化 ~~~ 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()); } } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看