ULID Generator
Tạo mã định danh duy nhất, có thứ tự theo từ điển với hiệu suất cao
Tạo ULID Nhanh Chóng
So Sánh & Patch JSON Trực Tuyến
Mã định danh nhanh, hiệu quả và có thứ tự cho ứng dụng hiện đại
Bắt Đầu
Tạo ULID
Mã định danh nhanh, hiệu quả và có thứ tự cho ứng dụng hiện đại
Tất cả dữ liệu được xử lý trong trình duyệt. Không có gì được gửi đến máy chủ.
Options
ULID so với UUID
Tại sao ULID lại tốt hơn UUID trong nhiều tình huống?
ULID
Khuyên dùngSắp xếp theo thời gian
10 byte đầu là thời gian Unix có thể sắp xếp tự nhiên
Base32 của Crockford
Mã hóa hiệu quả hơn, không phân biệt chữ hoa/thường, không có ký tự đặc biệt
Tùy chọn đơn điệu
Có thể tạo ra các giá trị tăng dần đơn điệu cho cùng một mốc thời gian
Dễ đọc
Dễ dàng gỡ lỗi và đọc trong nhật ký và cơ sở dữ liệu
Ví dụ ULID:
UUID
Không sắp xếp theo thời gian
Các byte ngẫu nhiên không đảm bảo thứ tự nào
Mã hóa Hex
Kém hiệu quả hơn, yêu cầu nhiều ký tự hơn cho cùng một thông tin
Không có tính đơn điệu
Không có cơ chế tích hợp cho các giá trị tăng dần đơn điệu
Khó đọc hơn
Khó phân biệt và nhận dạng trong nhật ký và cơ sở dữ liệu
Ví dụ UUID:
So sánh hiệu suất
Ví dụ mã
Dưới đây là một số ví dụ mã để giúp bạn bắt đầu
// Node.js / Browser
// Cài đặt: npm install @ulid/javascript
import { ulid } from '@ulid/javascript';
// Tạo ULID mới
const myUlid = ulid(); // "01F8MECHZX3TBDSZ7XR8H8J1R4"
// Tạo ULID với timestamp tùy chỉnh (milliseconds)
const customTimestamp = 1616239022000;
const ulidWithCustomTime = ulid(customTimestamp);
// Tạo ULID tăng dần (cho nhiều ID trong cùng 1ms)
import { monotonicFactory } from '@ulid/javascript';
const monotonic = monotonicFactory();
const ulid1 = monotonic(); // "01F8MECHZX3TBDSZ7XR8H8J1R4"
const ulid2 = monotonic(); // "01F8MECHZX3TBDSZ7XR8H8J1R5" (tăng dần)
// Lấy timestamp từ ULID
const timestamp = ulid.decode(myUlid).time;
console.log(new Date(timestamp).toISOString());
JavaScript: npm install @ulid/javascript
Giải mã ULID
Trích xuất thời gian và phần ngẫu nhiên từ ULID
Validation Results
Chuyển đổi UUID / ULID
Chuyển đổi giữa các định dạng UUID và ULID
Lưu ý: Khi chuyển đổi UUID sang ULID, timestamp hiện tại sẽ được sử dụng. Điều này có nghĩa là cùng một UUID sẽ tạo ra các ULID khác nhau vào các thời điểm khác nhau.
ULID Comparator
Kết quả so sánh
Phân tích thành phần
Entropy Difference
Character-by-Character Diff
Timestamp Part
Random Part
Detailed Diff View
Position | |
First ULID | |
Second ULID | |
Difference |
Chuyển đổi thời gian
Kết quả chuyển đổi
Công cụ JSON
Tiện ích để làm việc với dữ liệu JSON
Kiểm tra JSONPath
Test and validate JSONPath expressions against your JSON data.
JSON Patch
Apply RFC 6902 JSON Patch operations to transform JSON documents.
Tạo JSON Patch
Generate JSON Patch documents by comparing two JSON objects.
So sánh JSON
Compare two JSON objects and visualize the differences in multiple formats.
Test and validate JSONPath expressions against your JSON data.
JSON Data
JSONPath Expression
Result
JSONPath Reference
Basic Syntax
Symbol | Description |
---|---|
$ | Root object |
@ | Current object |
. | Child operator |
.. | Recursive descent |
* | Wildcard. All objects/elements |
[] | Subscript operator |
[,] | Union operator |
Examples
JSONPath | Description |
---|---|
$.store.book[0] | First book |
$.store.book[-1] | Last book |
$.store.book[0,1] | First two books |
$.store.book[*] | All books |
$.store.book[*].author | All authors |
$.store.book[?(@.price < 10)] | Books less than 10 dollars |
$..book[?(@.isbn)] | All books with ISBN |
Generate JSON Patch documents by comparing two JSON objects.
Source JSON
Target JSON
Generated JSON Patch
Verification
JSON Patch Operations (RFC 6902)
Operation | Description |
---|---|
add | Adds a value to an object or inserts it into an array |
remove | Removes a value from an object or array |
replace | Replaces a value |
Operation | Description |
---|---|
move | Moves a value from one location to another |
copy | Copies a value from one location to another |
test | Tests that a value at the target location is equal to a specified value |