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.
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 << tokenMì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.