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

歡迎訪問 生活随笔!

生活随笔

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

javascript

初学JSON

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

一. 概念

JavaScript Object Notation?? ??? ?JavaScript對象表示法
?? ??? ?Person p = new Person();
?? ??? ?p.setName("張三");
?? ??? ?p.setAge(23);
?? ??? ?p.setGender("男");

?? ??? ?var p = {"name":"張三","age":23,"gender":"男"};

?? ??? ?* json現在多用于存儲和交換文本信息的語法
?? ??? ?* 進行數據的傳輸
?? ??? ?* JSON 比 XML 更小、更快,更易解析。? ??

二. 語法:
? ? ? ?

? ? ?2.1 基本規則


?? ??? ??? ?* 數據在名稱/值對中:json數據是由鍵值對構成的
?? ??? ??? ??? ?* 鍵用引號(單雙都行)引起來,也可以不使用引號
?? ??? ??? ??? ?* 值得取值類型:
?? ??? ??? ??? ??? ?1. 數字(整數或浮點數)
?? ??? ??? ??? ??? ?2. 字符串(在雙引號中)
?? ??? ??? ??? ??? ?3. 邏輯值(true 或 false)
?? ??? ??? ??? ??? ?4. 數組(在方括號中)?? ?{"persons":[{},{}]}
?? ??? ??? ??? ??? ?5. 對象(在花括號中) {"address":{"province":"陜西"....}}
?? ??? ??? ??? ??? ?6. null
?? ??? ??? ?* 數據由逗號分隔:多個鍵值對由逗號分隔
?? ??? ??? ?* 花括號保存對象:使用{}定義json 格式
?? ??? ??? ?* 方括號保存數組:[]


?? ??? ?2.2. 獲取數據


?? ??? ??? ?1. json對象.鍵名
?? ??? ??? ?2. json對象["鍵名"]
?? ??? ??? ?3. 數組對象[索引]
?? ??? ??? ?4. 遍歷? ? ? ? ? ? ? ?

//1.定義基本格式var person = {"name": "張三", age: 23, 'gender': true};var ps = [{"name": "張三", "age": 23, "gender": true},{"name": "李四", "age": 24, "gender": true},{"name": "王五", "age": 25, "gender": false}];//獲取person對象中所有的鍵和值//for in 循環/* for(var key in person){//這樣的方式獲取不行。因為相當于 ?person."name"//alert(key + ":" + person.key);alert(key+":"+person[key]);}*///獲取ps中的所有值for (var i = 0; i < ps.length; i++) {var p = ps[i];for(var key in p){alert(key+":"+p[key]);}}


?? ?

三. JSON數據和Java對象的相互轉換

?? ??? ?* JSON解析器:
?? ??? ??? ?* 常見的解析器:Jsonlib,Gson,fastjson,jackson

? ?
? ? ? ? 3.1. JSON轉為Java對象


?? ??? ??? ?1. 導入jackson的相關jar包
?? ??? ??? ?2. 創建Jackson核心對象 ObjectMapper
?? ??? ??? ?3. 調用ObjectMapper的相關方法進行轉換
?? ??? ??? ??? ?1. readValue(json字符串數據,Class)

package servlet.test;import java.util.ArrayList; import java.util.Date;import org.apache.tomcat.jni.File; import org.junit.Test;import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper;import servlet.domain.Person;public class JsonTest3 {//將java對象轉化成json字符串的格式@Testpublic void test() throws Exception {//創建Json的核心對象 ObjectMapperObjectMapper oMapper=new ObjectMapper();//轉換/* 轉換方法:* writeValue(參數1,obj)* 參數1:* File: 將obj對象轉換成json格式的字符串,并保存到指定的文件中* Writer: 將obj對象轉換成json格式的字符串,并將json數據填充到字符輸出流中* outputStream: 將obj對象轉換成json格式的字符串,并將json數據填充到字節輸出流中* * writeValueAsString(obj) :將obj對象直接轉換成json格式的字符串輸出,返回的是json格式的字符串* *///注意一定要json格式的字符串{鍵:值}String json="{\"name\":\"xucc\",\"age\":26,\"gender\":\"男\",\"birthday\":\"2022-03-22\"}";//將json格式的字符串轉化為對象,readValue方法返回是封裝的對象Person p=oMapper.readValue(json, Person.class);System.out.println(p);//將obj對象轉換為JSON字符串,并保存到指定的文件中//oMapper.writeValue(new java.io.File("F://d.txt"), persons);} }


? ? ? ? 3.2. Java對象轉換JSON


?? ??? ??? ?1. 使用步驟:
?? ??? ??? ??? ?1. 導入jackson的相關jar包
?? ??? ??? ??? ?2. 創建Jackson核心對象 ObjectMapper
?? ??? ??? ??? ?3. 調用ObjectMapper的相關方法進行轉換
?? ??? ??? ??? ??? ?1. 轉換方法:
?? ??? ??? ??? ??? ??? ?* writeValue(參數1,obj):
?? ??? ? ? ? ? ? ? ? ? ? ? ?參數1:
?? ??? ? ? ? ? ? ? ? ? ? ? ? ? ?File:將obj對象轉換為JSON字符串,并保存到指定的文件中
?? ??? ? ? ? ? ? ? ? ? ? ? ? ? ?Writer:將obj對象轉換為JSON字符串,并將json數據填充到字符輸出流中
?? ??? ? ? ? ? ? ? ? ? ? ? ? ? ?OutputStream:將obj對象轉換為JSON字符串,并將json數據填充到字節輸出流中
?? ??? ? ? ? ? ? ? ? ? ?* writeValueAsString(obj):將對象轉為json字符串??

package servlet.test;import org.apache.tomcat.jni.File; import org.junit.Test;import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper;import servlet.domain.Person;public class JsonTest {//將java對象轉化成json字符串的格式@Testpublic void test() throws Exception {//1.創建java對象Person persons=new Person();persons.setName("xucc");persons.setAge(26);persons.setGender("男");//2.創建Json的核心對象 ObjectMapperObjectMapper oMapper=new ObjectMapper();//3.轉換/* 轉換方法:* writeValue(參數1,obj)* 參數1:* File: 將obj對象轉換成json格式的字符串,并保存到指定的文件中* Writer: 將obj對象轉換成json格式的字符串,并將json數據填充到字符輸出流中* outputStream: 將obj對象轉換成json格式的字符串,并將json數據填充到字節輸出流中* * writeValueAsString(obj) :將obj對象直接轉換成json格式的字符串輸出,返回的是json格式的字符串* */String jsonString=oMapper.writeValueAsString(persons);System.out.println(jsonString);//將obj對象轉換為JSON字符串,并保存到指定的文件中oMapper.writeValue(new java.io.File("F://d.txt"), persons);} }

?? ??? ??? ??? ??? ?2. 注解:
?? ??? ??? ??? ??? ??? ?1. @JsonIgnore:排除屬性。
?? ??? ??? ??? ??? ??? ?2. @JsonFormat:屬性值得格式化
?? ??? ??? ??? ??? ??? ??? ?* @JsonFormat(pattern = "yyyy-MM-dd")

Person類

package servlet.domain;import java.util.Date;import com.fasterxml.jackson.annotation.JsonFormat;public class Person {private String name;private int age;private String gender;@JsonFormat(pattern = "yyyy-MM-dd") //轉化成json格式時,時間格式就會轉化成好的模樣private Date birthday;public String getName() {return name;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + ", gender=" + gender + ", birthday=" + birthday + "]";}}

JuitTest類?

package servlet.test;import java.util.Date;import org.apache.tomcat.jni.File; import org.junit.Test;import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper;import servlet.domain.Person;public class JsonTest2 {//將java對象轉化成json字符串的格式@Testpublic void test() throws Exception {//1.創建java對象Person persons=new Person();persons.setName("xucc");persons.setAge(26);persons.setGender("男");persons.setBirthday(new Date());//2.創建Json的核心對象 ObjectMapperObjectMapper oMapper=new ObjectMapper();//3.轉換/* 轉換方法:* writeValue(參數1,obj)* 參數1:* File: 將obj對象轉換成json格式的字符串,并保存到指定的文件中* Writer: 將obj對象轉換成json格式的字符串,并將json數據填充到字符輸出流中* outputStream: 將obj對象轉換成json格式的字符串,并將json數據填充到字節輸出流中* * writeValueAsString(obj) :將obj對象直接轉換成json格式的字符串輸出,返回的是json格式的字符串* */String jsonString=oMapper.writeValueAsString(persons);System.out.println(jsonString);//將obj對象轉換為JSON字符串,并保存到指定的文件中//oMapper.writeValue(new java.io.File("F://d.txt"), persons);} }

?? ??? ??? ??? ??? ?3. 復雜java對象轉換
?? ??? ??? ??? ??? ??? ?1. List:數組
?? ??? ??? ??? ??? ??? ?2. Map:對象格式一致

package servlet.test;import java.util.ArrayList; import java.util.Date;import org.apache.tomcat.jni.File; import org.junit.Test;import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper;import servlet.domain.Person;public class JsonTest3 {//將java對象轉化成json字符串的格式@Testpublic void test() throws Exception {//1.創建java對象Person persons=new Person();persons.setName("xucc");persons.setAge(26);persons.setGender("男");persons.setBirthday(new Date());Person persons2=new Person();persons2.setName("xucc");persons2.setAge(26);persons2.setGender("男");persons2.setBirthday(new Date());//2.創建Json的核心對象 ObjectMapperObjectMapper oMapper=new ObjectMapper();//3.轉換/* 轉換方法:* writeValue(參數1,obj)* 參數1:* File: 將obj對象轉換成json格式的字符串,并保存到指定的文件中* Writer: 將obj對象轉換成json格式的字符串,并將json數據填充到字符輸出流中* outputStream: 將obj對象轉換成json格式的字符串,并將json數據填充到字節輸出流中* * writeValueAsString(obj) :將obj對象直接轉換成json格式的字符串輸出,返回的是json格式的字符串* */ArrayList<Person> list=new ArrayList<Person>();list.add(persons);list.add(persons2);//將list格式轉化成json格式String jsonString=oMapper.writeValueAsString(list);System.out.println(jsonString);//將obj對象轉換為JSON字符串,并保存到指定的文件中//oMapper.writeValue(new java.io.File("F://d.txt"), persons);} }

總結

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

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