-
30-01-2015, 01:46 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Làm cách nào để tuỳ chỉnh JSON trả về
Mình đang làm 1 ứng dụng về Web API tuy nhiên vấn đề là Web API nó chỉ trả về dạng JSON, mình thì nào giờ cũng có sử dụng JSON tuy nhiên chỉ là JSON theo danh sách 1 cấp, ví dụ như return JSON danh sách sản phẩm với các tham số từ db.
Xong hiện nay mình thấy có nhiều đoạn JSON nó trả về theo dạng như sau
Kiểu này thường mình thấy nó dùng để làm menu, hay tree view
Mình thì chưa làm kiểu này lần nào! nên mới pm hỏi mấy bạn
Và cuối cùng là vấn đề mình là mình chưa hiểu làm cách nào từ 1 bảng trong mà có thể trả về 1 cái JSON như vậy
Ví dụ: Categories: Id, Name, ParentId, Url
đấy làm sao mà từ 1 bảng trong csdl như thế có thể trả về 1 cái JSON 1 cấp, 2 cấp, nhiều cấp
Có người chỉ mình tự định nghĩa cho output JSON mình thì chưa có bất kỳ ý tưởng cũng như khái niệm của nó nên post lên hy vọng có ai đó chỉ [IMG]images/smilies/smile.png[/IMG]View more random threads:
- ASP.NET lấy các giá trị trong của ô trong Girdview?
- tạo chuỗi kết nối ở trang webconfig
- chỉnh kích thước của font lại cho nó nằm trong 1 kích thước nhất định của label?
- Khai báo source trang aspx để nhận CSS như thế nào?
- Làm sao để tạo checkbox trong datagrid (.net 2.0, kg phải datagridview) ?
- Cách dùng Item của combobox lưu một datasource
- làm sao lấy các thông tin địa điểm của người dùng qua API của google
- Làm sao để đưa 1 usercontrol tự xây dựng vào toolbox
- Totalcommander in ASP.NET
- Học asp.net có cần thiết phải đi sâu vào javascript và css không
-
30-01-2015, 06:39 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Bạn có thể hiểu như này:
JSON chỉ là một string, không hơn không kém.
Tuy nhiên là nó có các quy tắc để tạo string đó sao cho, dữ liệu được trao đổi phải đảm bảo tính toàn vẹn và an toàn.
~~> nó là một string có cấu trúc.
Nếu như trong ngôn ngữ java, c#... bạn dùng object để trao đổi thông tin giữa các class với nhau, thì web API dùng JSON hoặc XML để trao đổi thông tin giữa web client và server.
Ref JSON
-
31-01-2015, 05:20 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Hiểu được cấu trúc JSON trước rồi thì việc sử dụng rất đơn giản
Bạn bày cách thiết kế 1 cấu trúc JSON dựa trên cấu trúc dữ liệu như sau:
Mã:struct Student{ int id; string *name;}; struct Class{ int id; int num; Student *student;};
Mã:{ //student "id":"123", "name":[ "firstName":"John", "lastName":"Doe" ] } {//class "id":"09TH", "num":"3", "student":[ {"id":"111", {"firstName":"John", "lastName":"Doe"}}, {"id":"222", {"firstName":"Anna", "lastName":"Smith"}}, {"id":"333", {"firstName":"Peter", "lastName":"Jones"}} ] }
-
31-01-2015, 05:23 PM #4Banned
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Vậy còn nếu 1 class thì sao bạn vd như: Categories: Id, Name, ParentId
Chứ cách 2 class như bạn chỉ thì mình biết rồi, còn từ 1 class ấy
-
31-01-2015, 05:43 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Đang ở
- 89 Tam Trinh - Hoàng Mai - Hà Nội
- Bài viết
- 0
Cái phức tạp thì bạn nói hiểu, còn cái đơn giản thì bạn lại bảo không biết sử dụng. Thế thì chịu!
Mã:{ "Categories":[ "Id":"123", "Name":"abc", "ParentId":"xyz" ]}
- - - Nội dung đã được cập nhật ngày 31-01-2015 lúc 10:43 AM - - -
http://www.w3schools.com/json/
~~> đây là page để thực hành
-
31-01-2015, 05:46 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Hình như bạn đọc chưa kỹ bài viết của mình ấy nhỉ?
Mã:{ "Categories":[ "Id":"123", "Name":"abc", "ParentId":"xyz" ] }
Chứ ko phải trả về cái Json như của bạn? bạn có đọc kỹ bài mình chưa nhỉ?
-
31-01-2015, 05:56 PM #7Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Bạn tự nghĩ cách đi nhé. Giúp thì đã giúp đến thế rồi. Không thể làm thay công việc của bạn được đâu.
-
03-02-2015, 11:54 AM #8Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
nếu mình nhớ không nhầm thì Web API tự động trả về kiểu dữ liệu dựa vào content-type từ request gọi lên. Và khi trả về thì Web API cũng sẽ tự làm cái việc tạo ra 1 string có cấu trúc json, ngay cả khi bạn return 1 anonymous object. Như vậy để trả về 1 json phân cấp mà không muốn tạo thêm class thì cứ việc trả về 1 anonymous object nhiều tầng thôi. Tuy nhiên nếu mà nhiều tầng thì khá rối rắm.
-
03-02-2015, 04:53 PM #9Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Có một cách đơn giản nhưng mà code lại cầu kỳ đó là bạn dùng stringbuilder thích tạo ra thế nào cũng được @@
-
03-02-2015, 06:11 PM #10Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
stringbuilder tạo được nhưng cách đó không được chấp nhận vì code đó dài dòng. Mình thấy Yêu thú lai tiên <= con rồng cháu tiên chỉ rất cụ thể rồi.
Mã:public class Categories{public int id{get;set;},public List<selectListItem> ParentId{get;set}
Vệ sinh cá nhân là một phần quan yếu của sức khỏe nam giới. Dùng dung dịch vệ sinh mỗi ngày mang lại nhiều ích, giúp loại bỏ vi khuẩn và vi sinh vật gây hại, giúp khu vực cơ quan sinh dục luôn sạch...
Gel vệ sinh cu, bạn trai có nên...