Định dạng và làm đẹp dữ liệu JSON của bạn với thụt lề đúng cách. Biến JSON thô thành dễ đọc với đánh dấu cú pháp và xác thực.
Định dạng và làm đẹp JSON của bạn với công cụ đơn giản này
JSON đã định dạng sẽ xuất hiện ở đây...
JSON (JavaScript Object Notation) là một định dạng trao đổi dữ liệu nhẹ, đã trở thành tiêu chuẩn cho việc trao đổi dữ liệu trong các ứng dụng web. Mặc dù đơn giản, dữ liệu JSON có thể trở nên khó đọc khi bị nén hoặc thiếu định dạng thích hợp. Công cụ này giúp bạn chuyển đổi các chuỗi JSON thô, không định dạng thành một định dạng có cấu trúc tốt, thụt lề, dễ đọc và phân tích hơn.
Định dạng JSON (còn được gọi là "in đẹp") thêm thụt lề nhất quán, ngắt dòng và khoảng cách để làm cho cấu trúc phân cấp của dữ liệu JSON trở nên rõ ràng về mặt hình ảnh. Điều này đặc biệt có giá trị khi làm việc với các đối tượng lồng ghép phức tạp hoặc tập dữ liệu lớn, nơi mà các mối quan hệ giữa các phần tử có thể khó nhận biết.
Công cụ định dạng JSON của chúng tôi cung cấp một giao diện đơn giản để làm đẹp dữ liệu JSON của bạn với định dạng thụt lề thích hợp và cấu trúc, làm cho nó dễ đọc hơn cho con người trong khi vẫn giữ tính hợp lệ cho máy móc.
JSON được xây dựng trên hai cấu trúc chính:
{}
. Mỗi tên được theo sau bởi một dấu hai chấm :
và các cặp được phân tách bằng dấu phẩy ,
.1 {"name": "John", "age": 30, "city": "New York"}
2
[]
. Các giá trị được phân tách bằng dấu phẩy ,
.1 ["apple", "banana", "cherry"]
2
Giá trị JSON có thể là:
"Hello World"
42
hoặc 3.14159
true
hoặc false
null
{"key": "value"}
[1, 2, 3]
JSON hợp lệ phải tuân theo các quy tắc cú pháp này:
Các lỗi cú pháp phổ biến bao gồm:
Định dạng JSON chuyển đổi JSON nén, không định dạng thành một hình thức dễ đọc hơn bằng cách:
Phân tích: Chuỗi JSON trước tiên được phân tích để đảm bảo nó hợp lệ và tạo ra một đại diện trong bộ nhớ của cấu trúc dữ liệu.
Thụt lề: Mỗi cấp độ lồng ghép của các đối tượng và mảng được thụt lề (thường là 2 hoặc 4 khoảng trắng) để thể hiện cấu trúc phân cấp một cách trực quan.
Ngắt dòng: Các dòng mới được thêm vào sau mỗi thuộc tính hoặc phần tử mảng để cải thiện khả năng đọc.
Khoảng cách: Khoảng cách nhất quán được thêm vào xung quanh dấu hai chấm và dấu phẩy.
Ví dụ, JSON nén này:
1{"name":"John Doe","age":30,"address":{"street":"123 Main St","city":"Anytown","state":"CA"},"hobbies":["reading","hiking","photography"]}
2
Trở thành JSON được định dạng như sau:
1{
2 "name": "John Doe",
3 "age": 30,
4 "address": {
5 "street": "123 Main St",
6 "city": "Anytown",
7 "state": "CA"
8 },
9 "hobbies": [
10 "reading",
11 "hiking",
12 "photography"
13 ]
14}
15
Công cụ của chúng tôi sử dụng thụt lề tiêu chuẩn là 2 khoảng trắng cho mỗi cấp độ, đây là một quy ước phổ biến trong cộng đồng phát triển và cung cấp sự cân bằng tốt giữa độ gọn gàng và khả năng đọc.
Một khía cạnh quan trọng của định dạng JSON là xác thực. Trước khi JSON có thể được định dạng, nó phải hợp lệ về mặt cú pháp theo đặc tả JSON. Các lỗi xác thực phổ biến bao gồm:
Lỗi cú pháp:
Lỗi kiểu dữ liệu:
undefined
hoặc NaN
Khi bạn gặp JSON không hợp lệ, thông báo lỗi có thể giúp xác định vấn đề. Hầu hết các trình phân tích JSON sẽ chỉ ra vị trí mà việc phân tích thất bại, điều này có thể giúp xác định vấn đề. Công cụ của chúng tôi cung cấp thông báo lỗi rõ ràng để giúp bạn xác định và sửa chữa các vấn đề trong dữ liệu JSON của bạn.
Định dạng JSON có giá trị trong nhiều kịch bản:
Khi làm việc với các API RESTful, JSON được định dạng giúp dễ dàng:
Nhiều ứng dụng hiện đại sử dụng JSON cho cấu hình:
Định dạng JSON giúp khi:
Định dạng JSON đúng là rất cần thiết khi:
Định dạng JSON rõ ràng có giá trị cho:
Mặc dù công cụ định dạng JSON dựa trên web của chúng tôi thuận tiện cho các tác vụ định dạng nhanh, nhưng có một số lựa chọn thay thế cho các kịch bản khác nhau:
Các trình duyệt hiện đại bao gồm khả năng định dạng JSON:
Hầu hết các môi trường phát triển cung cấp định dạng JSON:
Đối với người dùng terminal hoặc tự động hóa:
jq
là một bộ xử lý JSON mạnh mẽ trên dòng lệnhjson_pp
được cài đặt sẵn trên nhiều hệ thống Unixpython -m json.tool
cung cấp định dạng nhanh bằng PythonKhi định dạng JSON trong các ứng dụng:
1// Định dạng JSON trong JavaScript
2const formatted = JSON.stringify(jsonObject, null, 2);
3
1# Định dạng JSON trong Python
2import json
3formatted = json.dumps(json_object, indent=2)
4
1// Định dạng JSON trong Java với Gson
2Gson gson = new GsonBuilder().setPrettyPrinting().create();
3String formatted = gson.toJson(jsonObject);
4
1# Định dạng JSON trong Ruby
2require 'json'
3formatted = JSON.pretty_generate(json_object)
4
1// Định dạng JSON trong PHP
2$formatted = json_encode($jsonObject, JSON_PRETTY_PRINT);
3
JSON được tạo ra bởi Douglas Crockford vào đầu những năm 2000 như một sự thay thế nhẹ cho XML. Định dạng này được phát triển từ cú pháp đối tượng của JavaScript nhưng được thiết kế để độc lập với ngôn ngữ. Vào năm 2006, JSON được xác định chính thức trong RFC 4627, và nó nhanh chóng trở nên phổ biến nhờ sự đơn giản và tương thích với JavaScript.
Trước JSON, XML là định dạng thống trị cho việc trao đổi dữ liệu, nhưng tính dài dòng và phức tạp của nó khiến nó trở nên c cumbersome cho nhiều ứng dụng. JSON cung cấp một cú pháp ngắn gọn hơn mà dễ đọc và viết hơn, cả cho con người và máy móc. Nó cũng hoàn toàn phù hợp với mô hình đối tượng của JavaScript, khiến nó trở thành lựa chọn tự nhiên cho các ứng dụng web.
Sự chấp nhận JSON đã tăng tốc với sự gia tăng của AJAX và các API RESTful vào giữa những năm 2000. Đến những năm 2010, nó đã trở thành tiêu chuẩn de facto cho các API web, tệp cấu hình và lưu trữ dữ liệu trong các cơ sở dữ liệu NoSQL như MongoDB và CouchDB.
Ngày nay, JSON được hỗ trợ bởi hầu hết mọi ngôn ngữ lập trình và được sử dụng trong vô số ứng dụng trên web. Sự đơn giản, linh hoạt và hỗ trợ toàn cầu của nó đã khiến nó trở thành một trong những định dạng dữ liệu quan trọng nhất trong tính toán hiện đại.
Dưới đây là các ví dụ về cách định dạng JSON trong các ngôn ngữ lập trình khác nhau:
1// Định dạng JSON trong JavaScript
2function formatJSON(jsonString) {
3 try {
4 const parsedData = JSON.parse(jsonString);
5 return JSON.stringify(parsedData, null, 2);
6 } catch (error) {
7 return `Lỗi: ${error.message}`;
8 }
9}
10
11// Ví dụ sử dụng
12const rawJSON = '{"name":"John","age":30,"city":"New York"}';
13console.log(formatJSON(rawJSON));
14
1# Định dạng JSON trong Python
2import json
3
4def format_json(json_string):
5 try:
6 parsed_data = json.loads(json_string)
7 return json.dumps(parsed_data, indent=2)
8 except json.JSONDecodeError as e:
9 return f"Lỗi: {str(e)}"
10
11# Ví dụ sử dụng
12raw_json = '{"name":"John","age":30,"city":"New York"}'
13print(format_json(raw_json))
14
1// Định dạng JSON trong Java với Gson
2import com.google.gson.Gson;
3import com.google.gson.GsonBuilder;
4import com.google.gson.JsonSyntaxException;
5
6public class JSONFormatter {
7 public static String formatJSON(String jsonString) {
8 try {
9 Gson gson = new GsonBuilder().setPrettyPrinting().create();
10 Object parsedJson = gson.fromJson(jsonString, Object.class);
11 return gson.toJson(parsedJson);
12 } catch (JsonSyntaxException e) {
13 return "Lỗi: " + e.getMessage();
14 }
15 }
16
17 public static void main(String[] args) {
18 String rawJSON = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
19 System.out.println(formatJSON(rawJSON));
20 }
21}
22
1// Định dạng JSON trong PHP
2function formatJSON($jsonString) {
3 $result = json_decode($jsonString);
4 if (json_last_error() !== JSON_ERROR_NONE) {
5 return "Lỗi: " . json_last_error_msg();
6 }
7 return json_encode($result, JSON_PRETTY_PRINT);
8}
9
10// Ví dụ sử dụng
11$rawJSON = '{"name":"John","age":30,"city":"New York"}';
12echo formatJSON($rawJSON);
13
1# Định dạng JSON trong Ruby
2require 'json'
3
4def format_json(json_string)
5 begin
6 parsed_data = JSON.parse(json_string)
7 return JSON.pretty_generate(parsed_data)
8 rescue JSON::ParserError => e
9 return "Lỗi: #{e.message}"
10 end
11end
12
13# Ví dụ sử dụng
14raw_json = '{"name":"John","age":30,"city":"New York"}'
15puts format_json(raw_json)
16
1// Định dạng JSON trong C# với Newtonsoft.Json
2using Newtonsoft.Json;
3using System;
4
5class JSONFormatter
6{
7 public static string FormatJSON(string jsonString)
8 {
9 try
10 {
11 object parsedJson = JsonConvert.DeserializeObject(jsonString);
12 return JsonConvert.SerializeObject(parsedJson, Formatting.Indented);
13 }
14 catch (JsonException e)
15 {
16 return $"Lỗi: {e.Message}";
17 }
18 }
19
20 static void Main()
21 {
22 string rawJSON = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
23 Console.WriteLine(FormatJSON(rawJSON));
24 }
25}
26
1// Định dạng JSON trong Go
2package main
3
4import (
5 "encoding/json"
6 "fmt"
7)
8
9func formatJSON(jsonString string) string {
10 var parsedData interface{}
11 err := json.Unmarshal([]byte(jsonString), &parsedData)
12 if err != nil {
13 return fmt.Sprintf("Lỗi: %s", err.Error())
14 }
15
16 formattedBytes, err := json.MarshalIndent(parsedData, "", " ")
17 if err != nil {
18 return fmt.Sprintf("Lỗi: %s", err.Error())
19 }
20
21 return string(formattedBytes)
22}
23
24func main() {
25 rawJSON := `{"name":"John","age":30,"city":"New York"}`
26 fmt.Println(formatJSON(rawJSON))
27}
28
Khi làm việc với định dạng JSON, hãy lưu ý những thách thức tiềm ẩn này:
Các tệp JSON rất lớn (vài megabyte hoặc hơn) có thể gây ra vấn đề về hiệu suất trong các công cụ định dạng dựa trên trình duyệt. Đối với các trường hợp như vậy:
jq
JSON lồng ghép cực kỳ sâu (hơn 10-20 cấp độ) có thể trở nên khó điều hướng ngay cả khi được định dạng. Trong những trường hợp này:
JSON hỗ trợ Unicode, nhưng một số công cụ định dạng có thể gặp vấn đề với một số ký tự:
JSON không xác định độ chính xác cho các số, điều này có thể dẫn đến các vấn đề với các số nguyên rất lớn hoặc giá trị số thực:
JSON hợp lệ bao gồm các đối tượng trống {}
và mảng []
, cần được định dạng đúng:
{}
[]
Khám phá thêm các công cụ có thể hữu ích cho quy trình làm việc của bạn