Java 8 Stream - Xử lý Array, List nhanh gọn
Trong rất nhiều trường hợp kiểm thử tự động, bạn phải xử lý raw data là dạng mảng hay chuỗi dữ liệu. Tiêu biểu là một Json Array như dưới đây.
Last updated
Was this helpful?
Trong rất nhiều trường hợp kiểm thử tự động, bạn phải xử lý raw data là dạng mảng hay chuỗi dữ liệu. Tiêu biểu là một Json Array như dưới đây.
Last updated
Was this helpful?
Đây là 1 Json Array về các nhân vật trong bộ film "Star War". Mình dùng nó để thực hành các hàm hay ho của Java Stream nha
[
{
"name": "Luke Skywalker",
"height": "172",
"mass": "77",
"hair_color": "blond",
"skin_color": "fair",
"eye_color": "blue",
"birth_year": "19BBY",
"gender": "male"
},
{
"name": "Darth Vader",
"height": "202",
"mass": "136",
"hair_color": "none",
"skin_color": "white",
"eye_color": "yellow",
"birth_year": "41.9BBY",
"gender": "male"
},
{
"name": "Leia Organa",
"height": "150",
"mass": "49",
"hair_color": "brown",
"skin_color": "light",
"eye_color": "brown",
"birth_year": "19BBY",
"gender": "female"
},
{
"name": "Owen Lars",
"height": "178",
"mass": "120",
"hair_color": "brown, grey",
"skin_color": "light",
"eye_color": "blue",
"birth_year": "52BBY",
"gender": "male"
},
{
"name": "Beru Whitesun lars",
"height": "165",
"mass": "75",
"hair_color": "brown",
"skin_color": "light",
"eye_color": "blue",
"birth_year": "47BBY",
"gender": "female"
},
{
"name": "Biggs Darklighter",
"height": "183",
"mass": "84",
"hair_color": "black",
"skin_color": "light",
"eye_color": "brown",
"birth_year": "24BBY",
"gender": "male"
},
{
"name": "Obi-Wan Kenobi",
"height": "182",
"mass": "77",
"hair_color": "auburn, white",
"skin_color": "fair",
"eye_color": "blue-gray",
"birth_year": "57BBY",
"gender": "male"
}
]
package com.tvn.elements;
public class Person {
private String name;
private int height;
private int mass;
private String hair_color;
private String skin_color;
private String eye_color;
private String birth_year;
private String gender;
public Person(String name, int height, int mass, String hair_color, String skin_color, String eye_color, String birth_year, String gender) {
this.name = name;
this.height = height;
this.mass = mass;
this.hair_color = hair_color;
this.skin_color = skin_color;
this.eye_color = eye_color;
this.birth_year = birth_year;
this.gender = gender;
}
public void info(){
System.out.printf("name: %s\n",this.name);
System.out.printf("height: %d\n",this.height);
System.out.printf("mass: %d\n",this.mass);
System.out.printf("hair_color: %s\n",this.hair_color);
System.out.printf("skin_color: %s\n",this.skin_color);
System.out.printf("eye_color: %s\n",this.eye_color);
System.out.printf("birth_year: %s\n",this.birth_year);
System.out.printf("gender: %s\n",this.gender);
System.out.println("--------------------------");
}
public String getName() {
return name;
}
public int getHeight() {
return height;
}
public int getMass() {
return mass;
}
public String getHair_color() {
return hair_color;
}
public String getSkin_color() {
return skin_color;
}
public String getEye_color() {
return eye_color;
}
public String getBirth_year() {
return birth_year;
}
public String getGender() {
return gender;
}
}
public static void main(String[] args) {
Person person1 = new Person("Luke Skywalker", 172, 77, "blond", "fair", "blue", "19BBY", "male");
Person person2 = new Person("Darth Vader", 202, 136, "none", "white", "yellow", "41.9BBY", "male");
Person person3 = new Person("Leia Organa", 150, 49, "brown", "light", "brown", "19BBY", "female");
Person person4 = new Person("Owen Lars", 178, 120, "brown, grey", "light", "blue", "52BBY", "male");
Person person5 = new Person("Beru Whitesun lars", 165, 75, "brown", "light", "blue", "47BBY", "female");
Person person6 = new Person("Biggs Darklighter", 183, 84, "black", "light", "brown", "24BBY", "male");
Person person7 = new Person("Obi-Wan Kenobi", 182, 77, "auburn, white", "fair", "blue-gray", "57BBY", "male");
//Convert JSON ARRAY TO ARRAY OBJECT
List<Person> characters = Arrays.asList(person1, person2, person3, person4, person5, person6, person7);
characters.forEach(Person::info);
}
Và để chuyển thể Json ở trên thành đối tượng trong Java thì mình áp dụng kỹ thuật (Plain Old Java Object) để tạo một class với const
ructor
và getters methods như dưới đây.
Gán các giá trị vào đối tượng và lưu nó vào một danh sách List<Person>
chúng ra sẵn sàng cho thực hành rồi nhá