2011-11-24 44 views
7

My phản ứng dịch vụ web có Mimetype: "application/json" và kết quả đầu ra JSON của tôi mà không khoảng cách, như thế nàycách định dạng đầu ra Json?

{"Data":{"Item":"123","Timestamp":"2011-11-24T17:50:43"}} 

Khi JSON nên đầu ra như thế này

{ 
    "Data":{ 
     "Item":"123", 
     "Timestamp":"2011-11-24T17:50:43" 
    } 
} 

Có cách nào để tôi có thể sửa định dạng JSON, vì vậy nó có vẻ như # 2 không?

+1

Bạn nói "nên" trông giống như vậy - tại sao? Thật tuyệt khi được * có khả năng * định dạng nó, nhưng điều quan trọng là phải hiểu rằng hai phiên bản này tương đương với việc JavaScript sử dụng dữ liệu có liên quan. –

+0

Bạn có cần điều này để gỡ lỗi không? Im chỉ quan tâm – Grrbrr404

+0

Ngoài @JonSkeet - định dạng bạn JSON nicelly sẽ bổ sung thêm một chút chi phí đầu vào (vì các ký tự khoảng trắng cũng sẽ cần phải được truyền qua dây). –

Trả lời

22

tôi sẽ không thay đổi định dạng viết ra bởi dịch vụ web, nhưng nếu bạn muốn định dạng nó cho mục đích chẩn đoán bạn có thể sử dụng Json.NET để làm điều này rất đơn giản:

JObject json = JObject.Parse(text); 
string formatted = json.ToString(); 

Kết quả là được định dạng tự động. Bạn có thể đặt nó vào một công cụ nhỏ - hoặc là một công cụ máy tính để bàn hoặc một trang web ở đâu đó. (Tôi sẽ không ngạc nhiên nếu đã có các trình định dạng JSON trực tuyến, mặc dù rõ ràng là bạn muốn cẩn thận về việc định dạng dữ liệu nhạy cảm.)

+1

Fiddler từ Telerik định dạng phản ứng JSON độc đáo. –

+0

Tại sao tôi nên cẩn thận khi định dạng dữ liệu nhạy cảm? –

+2

@ZinanXing: Nhìn vào ngữ cảnh của câu: * các trình định dạng JSON trực tuyến *. Nếu bạn có thông tin cá nhân về khách hàng của mình, bạn nghĩ họ cảm thấy thế nào về việc bạn gửi chúng (có thể qua HTTP) đến một số trang web của bên thứ ba để định dạng? –

-1

Nếu bạn gọi dịch vụ của mình từ Firefox, có plugin tuyệt vời này sẽ tạo điều kiện cho JSON dành cho bạn: JSONView

tôi cũng sử dụng để sử dụng trang web này để định dạng và xác nhận bất kỳ JSON: JSON Formatter

+2

OP muốn thực hiện chương trình bằng C# –

2

câu trả lời của Jon dường như không hoạt động nếu phần tử gốc của json của bạn là một mảng. Sử dụng JToken thay vì JObject đã sửa lỗi này cho tôi. Là một phương pháp mở rộng trên chuỗi, hình thức này trông giống như:

public static string FormatJson(this string json) 
{ 
    return JToken.Parse(json).ToString(); 
} 
Các vấn đề liên quan