1. 程式人生 > 資訊 >2021 福布斯中國最佳僱主榜單釋出:B 站、京東等上榜

2021 福布斯中國最佳僱主榜單釋出:B 站、京東等上榜

簡述

  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:
File:將obj物件轉為JSON字串,並儲存到指定的檔案中
Writer:將obj物件轉為JSON字串,並將json資料填充到字元輸出流中
OutputStream:將obj物件轉為JSON字串,並將json資料填充到位元組輸出流中
引數2:
  Object物件
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);