Groovy support nhiều method khác nhau để write file, mình sẽ dùng cách dễ nhất cho dễ nhớ, những cách khác bạn tự tìm hiểu ở đây.
Nội dung bài viết
I. Write file text
Giả sử bạn có 1 response sau khi login như sau:
{ "success": true, "message": "Login successful", "user": { "id": "123", "name": "John Doe", "email": "johndoe@example.com", "mobile_number": "555-555-5555", "is_active": true, "role": "user", "bank_data": { "bank_name": "Example Bank", "account_number": "1234567890", "routing_number": "012345678" }, "company_data": { "company_name": "Acme Corporation", "employee_id": "ACME-123", "department": "Sales" }, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" } }
Bạn muốn save token vào 1 file mới.
- Step 1: Extract token từ response (bài số 2)
- Step 2: Tạo object File
- Step 3: Save token vào file
import groovy.json.* def slurper = new JsonSlurper() def response = slurper.parseText(prev.getResponseDataAsString()) def token = response.user.token def file_token = new File ("C:/users/dunguyen/desktop/", "file_token.txt") file_token << token
Mình dùng cú pháp file << content
để save thông tin vào file.
II. Write file json
Vẫn là response trên, mình lại cần save lại với ít thông tin hơn, kiểu như sau:
{ "name": "John Doe", "email": "johndoe@example.com", "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" }
- Step 1: Extract token từ response (bài số 2)
- Step 2: Tạo Map chứa data cần thiết
- Step 3: Convert Map thành json string (có format đẹp nha)
- Step 4: Save string vào file
import groovy.json.* def slurper = new JsonSlurper() def response = slurper.parseText(prev.getResponseDataAsString()) user_info = [ name: response.user.name, email: response.user.email, token: response.user.token ] def user_info_file = new File ("C:/users/dunguyen/desktop/", "user_info.json") def json = JsonOutput.toJson(user_info) user_info_file << JsonOutput.prettyPrint(json)
III. Write file csv
Giả sử mình có response dạng json như sau:
{ "Actors": [ { "name": "Tom Cruise", "age": 56, "birthdate": "July 3 1962", "photo": "https://jsonformatter.org/img/tom-cruise.jpg" }, { "name": "Robert Downey Jr.", "age": 53, "birthdate": "April 4 1965", "photo": "https://jsonformatter.org/img/Robert-Downey-Jr.jpg" } ] }
Giờ mình muốn save các thông tin trên về dạng csv.
- Step 1: Extract token từ response (bài số 2)
- Step 2: Tạo file
- Step 3: Dùng function for-each ở bài 4 để save lại từng item.
- Lưu ý: sẽ phải có ký tự xuống dòng
\n
ở mỗi String nhé.
import groovy.json.* def slurper = new JsonSlurper() def response = slurper.parseText(prev.getResponseDataAsString()) def actor_info_file = new File ("C:/users/dunguyen/desktop/", "actor_info.csv") actor_info_file << "name,age,birthdate,photo\n" response.Actors.each { actor -> content = "$actor.name,$actor.age,$actor.birthdate,$actor.photo\n" actor_info_file << content }
IV. Tổng kết
Nói chung là ghi file chỉ có 1, 2 dòng thôi, quan trọng là bạn phải sắp xếp được data cho phù hợp. Hết rồi, hẹn gặp các bạn ở bài khác.