Chuyển đổi cấu hình

Dán một định dạng cấu hình, nhận hai định dạng còn lại ngay khi nhập.

Cách sử dụng

  1. Dán cấu hình của bạn — YAML, JSON hoặc .properties của Java. Định dạng được nhận diện và hai định dạng còn lại hiện bên dưới ngay khi bạn nhập; không có nút nào để bấm.
  2. Nếu đoán sai, hãy tự chọn định dạng nguồn. Chọn thụt lề 2 hoặc 4 dấu cách, và tắt “Mở rộng khóa có dấu chấm” để giữ khóa kiểu Spring ở dạng phẳng.
  3. Sao chép hoặc tải từng kết quả riêng — tên tệp là config.yaml, config.json và config.properties.

Ví dụ

Đầu vào (YAML)

server:
  port: 8080
  name: order-service
debug: true

JSON và Properties

{
  "server": {
    "port": 8080,
    "name": "order-service"
  },
  "debug": true
}

Properties
----------
server.port = 8080
server.name = order-service
debug = true

Chỉ theo quy tắc mặc định: nguồn được nhận diện là YAML, nên 8080 vẫn là số và true vẫn là boolean. Properties không có kiểu, nên cùng các giá trị đó xuất ra thành chuỗi 8080 và true — khi nguồn là .properties thì mọi thứ đều là chuỗi từ đầu đến cuối.

Quy tắc, giới hạn và các vấn đề đã biết

  • Chỉ ba định dạng: YAML, JSON và .properties của Java. Không có TOML, không có tiêu đề [section] kiểu INI, không có XML hay CSV.
  • YAML được hỗ trợ ở mức tập con cho cấu hình: mapping dạng khối, sequence, flow {…} / […], scalar có ngoặc và block scalar | / >. Anchor (&), alias (*), !tag, khóa merge << và khóa phức tạp ? được báo lỗi thay vì đoán.
  • Chỉ tài liệu YAML đầu tiên được chuyển đổi; dấu --- về sau bị bỏ qua và được thông báo.
  • Chú thích không được giữ lại: ba định dạng đặt chú thích ở vị trí khác nhau, nên giữ chú thích sai chỗ còn tệ hơn không có.
  • Properties không có kiểu. Mọi giá trị đều là chuỗi, nên port = 8080 thành "8080" trong JSON — không phải 8080. Số, boolean và null chỉ được giữ khi nguồn là YAML hoặc JSON.
  • Văn bản không phải ASCII được ghi nguyên văn (UTF-8), không escape thành \uXXXX. Properties.store() của Java ghi ISO-8859-1, nên hãy lưu tệp dạng UTF-8 nếu bạn dán nó vào dự án Java.
  • Số nguyên vượt phạm vi an toàn (như 12345678901234567890) được giữ thành chuỗi với đúng các chữ số bạn nhập, thay vì bị làm tròn thành số.
  • Thứ tự khóa theo đầu vào của bạn; không có tùy chọn sắp xếp.
  • Mảng hoặc giá trị trần ở cấp cao nhất không thể ghi thành properties — bảng đó báo lỗi, bảng còn lại vẫn chuyển đổi.
  • Không tải tệp lên, không tham số URL, không lịch sử. Mọi thứ chạy trong trình duyệt: không có gì được tải lên hay lưu trữ.
  • Chuỗi chứa xuống dòng được ghi là "a\nb" trong YAML, không phải block scalar |.
  • Giới hạn: 1.000.000 ký tự và 64 cấp lồng nhau — vượt một trong hai sẽ báo lỗi thay vì trả kết quả bị cắt. Trên 200.000 ký tự, kết quả cập nhật khoảng 0,6 s sau khi bạn ngừng nhập; đầu ra dùng LF và không có xuống dòng cuối.

Những gì thường cần tiếp theo khi cấu hình đã đúng định dạng.