2010-11-15 34 views
5

Tôi đã tìm kiếm một cách để nắm bắt văn bản có cấu trúc (các phần, đoạn văn, nhấn mạnh, danh sách, v.v.) trong JSON, nhưng tôi chưa tìm thấy bất kỳ nội dung nào. Bất kỳ đề xuất? (Markdown vượt qua tâm trí của tôi, nhưng có thể có điều gì đó tốt hơn ở đó.)Văn bản có cấu trúc trong JSON

Trả lời

5

HTML là một cách được thiết lập tốt để mô tả văn bản có cấu trúc, theo định dạng thuần văn bản (!). Đánh dấu (như bạn đã đề cập) cũng sẽ hoạt động.

Quan điểm của tôi là đặt cược tốt nhất của bạn có thể sẽ sử dụng một số loại đánh dấu văn bản thuần túy như các lựa chọn đó và đặt văn bản của bạn trong một biến chuỗi JSON đơn. Tùy thuộc vào ứng dụng của bạn, nó có thể có ý nghĩa để có một mảng các phần, chứa một mảng các đoạn, có chứa một mảng các phần bình thường/đậm/danh sách, v.v. Tuy nhiên, trong trường hợp chung tôi nghĩ rằng các khối cũ tốt đánh dấu sẽ trớ trêu thay sẽ sạch hơn và dễ mở rộng hơn, do dễ dàng truyền chúng đi xung quanh và các thư viện được phát triển tốt để phân tích cú pháp toàn diện nếu/khi được yêu cầu.

5

Làm thế nào về một cái gì đó như thế này:

[ { "heading": "Foobar Example" }, 
    { "paragraph": 
    [ 
     "This is normal text, followed by... ", 
     { "bold": "some bold text" }, 
     "etc." 
    ] 
    } 
] 

Đó là:

  • sử dụng một chuỗi cho văn bản đơn giản không có định dạng hoặc khác mark-up;

  • sử dụng mảng bất cứ khi nào bạn muốn biểu thị chuỗi thứ tự các yếu tố văn bản nhất định;

  • sử dụng đối tượng trong đó khóa cho biết đánh dấu và giá trị thành phần văn bản mà định dạng được áp dụng.

+0

Tại sao điều này lại có được sự giảm giá? Tùy thuộc vào trường hợp sử dụng của người hỏi, đây có thể là một giải pháp tuyệt vời. (Có lẽ anh ta đang lưu trữ một tài liệu toàn văn bản trong JSON, như một phần của kho dữ liệu, hoặc một cái gì đó.) –

0

Ngoài ra còn có vẻ là một đặc điểm kỹ thuật có thể thực hiện điều này Markdown Syntax for Object Notation (MSON)

Không chắc chắn nếu bạn cho nó có giá trị những rắc rối của việc thực hiện spec, nhưng nó có vẻ là một lựa chọn.

Các vấn đề liên quan