Sublime Text 3 for Mac 安裝和外掛配置說明
阿新 • • 發佈:2021-06-22
簡述
Json是JavaScript Object Notation,中文是JavaScript物件表示法。json是一種輕量級的資料交換格式,採用完全獨立於程式語言的文字格式來儲存和表示資料。於人閱讀和編寫,同時也易於機器解析和生成,並有效地提升網路傳輸效率。
基本規則
資料在名稱/值對中:json資料是由鍵值對構成的。鍵由引號引起來,也可以不用引號
多個數據由逗號分隔
花括號儲存物件:使用{}定義json格式
方括號表示陣列
json值的取值型別:
數字 | (整數或浮點數) |
字串 | (在雙引號中) |
邏輯值 | (true 或 false) |
陣列 | (在方括號中) {"persons":[{},{}]} |
物件 | (在花括號中) {"address":{"province":"陝西"....}} |
null | / |
獲取資料
獲取單資料
1.json物件.鍵名
2.json物件["鍵名"]
3.json陣列物件[索引]
遍歷json
對於json物件的遍歷,我們就是在遍歷它的key
var person = {"name":"張三","age":23,"gender":true}; for(var key in person){ //key獲取出來就是個字元出,自帶"" alert(key + ":" + person[key]) }
對於json陣列的遍歷,我們就要使用雙重for迴圈的巢狀
var persons2 = [ {"name":"張三","age":23,"gender":true}, {"name":"李四","age":23,"gender":true}, {"name":"王五","age":23,"gender":true} ]; for(var i = 0;i<persons2.length;i++){ var p = persons2[i]; for(var key in p){ alert((key+":"+p[key])); } }
json資料和java物件的相互轉換
json是在客戶端和服務端資料傳輸的載體,所以就牽扯到json資料和java物件相互轉換的問題。
首先要匯入json相關的jar包
用於兩者物件的相互轉換的核心類是ObjectMapper類
json轉java
我們用到readValue方法,兩個引數分別為想要轉換的json字串、轉換後的java類的class
String json = "{\"name\":\"張三\",\"age\":23,\"gender\":\"男\"}"; ObjectMapper objectMapper = new ObjectMapper(); Person person = objectMapper.readValue(json, Person.class); System.out.println(person);
java轉json
對於轉換成json方法我們有兩個
writeValue(引數1,引數2): |
引數1: |
writeValueAsString(Obj) |
將傳入的obj物件轉為json字串 |
一些相關的註解
@JsonIgnore | 排除屬性 |
@JsonFormat | 時間屬性值得格式化 |
@JsonIgnore可以註解在成員變數上面,代表這個成員變數不會被轉換到json資料中
對於Date型別的成員變數,@JsonFormat(pattern = "yyyy-MM-dd")可以指定該時間的格式
List和Map物件轉換為json
List物件其實轉換出來就是一個json陣列,裡面含有多個json物件
Person p1 = new Person("張三",23,"男",new Date()); Person p2 = new Person("李四",23,"男",new Date()); Person p3 = new Person("王五",23,"男",new Date()); List<Person> list = new ArrayList<Person>(); Collections.addAll(list,p1,p2,p3); ObjectMapper objectMapper = new ObjectMapper(); String json = objectMapper.writeValueAsString(list); System.out.println(json);
Map物件其實就更加簡單了,其實就是將Map物件裡的鍵值對轉化成一個物件罷了
Map<String,Object> map = new HashMap<String,Object>(); map.put("name","張三"); map.put("age",23); ObjectMapper objectMapper = new ObjectMapper(); String json = objectMapper.writeValueAsString(map); System.out.println(json);