2013-07-09 38 views
6

Tôi có một ứng dụng Web lấy dữ liệu từ một chuỗi JSON. JSON có định dạng sauXây dựng chuỗi JSON từ Oracle DB

{ 
    "contacts": [{ 
     "type": "contact", 
     "name": "John Doe", 
     "contact": 1, 
     "links": ["Spouse", "Friends","Jane Doe","Harry Smith"] 
       }] 
} 

Bây giờ, đây là dữ liệu mẫu. DB thực tế của tôi là trong Oracle. Câu hỏi của tôi là làm thế nào để xây dựng JSON này từ Oracle.

+0

https://forums.oracle.com/thread/2382829 –

+0

http://technology.amis.nl/2011/06/14/creating-json-document-straight-from-sql-query-using-listagg -and-with-khoản/ –

+0

Với toán tử '||'. Chỉ cần để lại một mình định dạng JSON và tập trung vào việc cung cấp dữ liệu. Nếu bạn đăng cấu trúc dữ liệu của mình (các bảng mà bạn muốn dữ liệu này tạo ra từ đó) và cho chúng tôi biết bạn đã thử những gì, chúng tôi có thể cho bạn biết cách thực sự làm điều đó. –

Trả lời

5

Đây là phương pháp tốt nhất mà tôi đã xem: http://ora-00001.blogspot.sk/2010/02/ref-cursor-to-json.html.

Để tóm tắt:

  • Sử dụng các gói DBMS_XMLGEN để tạo ra XML từ một SYS_REFCURSOR.
  • Sau đó, chuyển đổi bằng cách sử dụng XSLT này.

Tôi thích nó vì không có tạo thủ công và vì bạn cũng có tùy chọn trả về XML bằng cách bỏ qua chuyển đổi cuối cùng.

+0

Vui lòng bao gồm các mục có liên quan từ liên kết của bạn trong câu trả lời của bạn, cũng như các giải thích cho chúng. Nếu trang web đó thay đổi hoặc xóa câu trả lời được chấp nhận của bạn sẽ trở thành vô dụng đối với người xem trong tương lai. – MattD

+0

Đây có thể là cách duy nhất nhưng phải nói rằng đó không phải là cách rất bền vững. JSON là một đánh dấu trọng lượng nhẹ hơn nhiều so với XML. Câu trả lời này về cơ bản là nói rằng không ai đã đưa ra một giải pháp công khai để trình bày dữ liệu oracle có lập trình theo định dạng API yêu thích của thế giới. – Adamantish

+0

Đó là thực tế không chính xác. Câu trả lời là những gì cung cấp một giải pháp công cộng, chương trình để trình bày dữ liệu Oracle theo định dạng API yêu thích của thế giới. Nếu bạn có câu trả lời hay hơn, hãy đăng câu trả lời và bình chọn. Bỏ phiếu xuống vì không có lý do nào tốt hơn là không thích giải pháp cụ thể bất chấp ý nghĩa. – manadart

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