Người đưa thư: gửi đối tượng JSON lồng nhau


153

Tôi đang sử dụng API Web ASP.NET: http://xyzdomain.com:16845/api/returns/returns

Làm cách nào để tôi gửi yêu cầu POST đến điểm cuối bằng tiện ích mở rộng Postman Chrome, được cung cấp Itemslà một bộ sưu tập:

[
  {
    "Items": [
      {
        "sku": "9257",
        "Price": "100",
        "Quantity": "500",
        "DiscountPercent": "1",
        "backordered": "2"
      }
    ],
    "order_id": "F429768865001",
    "status_code": "Shelf",
    "Exception": "no error"
  }
]

Câu trả lời:


175

Gửi dưới dạng dữ liệu thô và đặt loại thành application/json

nhập mô tả hình ảnh ở đây


3
Điều gì thực sự xảy ra khi dữ liệu này được gửi dưới dạng thô? Nó được lưu trữ ở đâu và như thế nào trong yêu cầu?
Anthony đến

Tôi sẽ sử dụng proxy web để xem xét điều đó nếu bạn tò mò (ví dụ: fiddler trên Windows, charles proxy trên mac)
standup75

1
Làm cách nào để thêm tệp hình ảnh trong yêu cầu JSON thô?
Shikhar varshney

Vâng, làm thế nào để chúng ta thêm / tải lên hình ảnh với yêu cầu JSON thô. @Shikharvarshney Bạn đã tìm thấy một cách tốt hơn?
Shahabaz

113

Để đăng một đối tượng lồng nhau với giao diện khóa-giá trị, bạn có thể sử dụng một phương thức tương tự để gửi mảng. Truyền khóa đối tượng trong ngoặc vuông sau chỉ mục đối tượng.

Vượt qua một mục lồng nhau với Postman

"Items": [
      {
        "sku": "9257",
        "Price": "100"
      }
 ]

8
Đây là câu trả lời tốt nhất theo quan điểm khiêm tốn của tôi ... Dễ nhất và dễ quản lý nhất.
AturSams

2
Đây là những gì tôi đang tìm kiếm, chỉ là tôi phải viết Vật phẩm [sku] thay vì Vật phẩm [0] [sku]
grom

7
Trong trường hợp của tôi, tôi có một đối tượng lồng nhau được gọi là vị trí với thành phố, tiểu bang và quốc gia trong đó. Tôi đã phải viết location.city, location.state, v.v.
Aafreen Sheikh

36

Tôi đã làm cho nó hoạt động bằng cách sử dụng tùy chọn Dữ liệu thô trong người đưa thư, như bạn có thể thấy trong ảnh chụp màn hình

nhập mô tả hình ảnh ở đây


Điều này là hoàn hảo
Sachin Pakale

Điều này là hoàn hảo
dvn

27

Đây là sự kết hợp của những điều trên, vì tôi đã phải đọc một vài bài viết để hiểu.

  1. Trong Tiêu đề , thêm các giá trị khóa sau:
    1. Content-Type đến application/json
    2. Acceptđểapplication/json

nhập mô tả hình ảnh ở đây

  1. Trong cơ thể :
    1. thay đổi loại thành "thô"
    2. xác nhận "JSON (application / json)" là loại văn bản
    3. đặt tài sản lồng nhau ở đó: { "Obj1" : { "key1" : "val1" } }

nhập mô tả hình ảnh ở đây

Hi vọng điêu nay co ich!


3
Nó nên application/json, không phảiapplications
NoobTW

@TBirkulosis: Với cách tiếp cận của bạn, Json sẽ không được gửi với Header
Arpan

26

Cặp khóa-giá trị có thể lấy đầu vào nâng cao.

Ví dụ.

nhập mô tả hình ảnh ở đây


1
Cảm ơn một người đàn ông ton, tôi đoán rằng nó sẽ ở đó nhưng tôi đã thử chú thích chấm. Đây chắc chắn là câu trả lời chính xác
Jack Franzen

23

Chỉ cần thêm các tham số này: Trong tùy chọn tiêu đề của yêu cầu, thêmContent-Type:application/json

tiêu đề nội dung postman json

và trong phần thân , chọn Định dạng thô và đặt thông số json của bạn như{'guid':'61791957-81A3-4264-8F32-49BCFB4544D8'}

json yêu cầu người đưa thư

Tôi đã tìm thấy giải pháp trên http://www.iminfo.in/post/post-json-postman-rest-client-chrom


9

Chọn tab thân và chọn ứng dụng / json trong trình đơn thả xuống Loại nội dung và thêm phần thân như thế này:

{
  "Username":"ABC",
  "Password":"ABC"
}

nhập mô tả hình ảnh ở đây


7

Chỉ muốn thêm một vấn đề nữa mà một số người có thể tìm thấy trên đầu trang của tất cả các câu trả lời khác. Gửi đối tượng JSON bằng dữ liệu RAW và đặt loại thành application/jsonlà những gì sẽ được thực hiện như đã được đề cập ở trên.

Mặc dù tôi đã làm như vậy, tôi đã gặp lỗi trong yêu cầu POSTman, đó là do tôi vô tình quên tạo một hàm tạo mặc định cho cả hai lớp con.

Nói nếu tôi phải gửi JSON có định dạng:

{
 "firstname" : "John",
 "lastname" : "Doe",
 "book":{
   "name":"Some Book",
   "price":12.2
  }
}

Sau đó, chỉ cần đảm bảo rằng bạn tạo một hàm tạo mặc định cho lớp Sách.

Tôi biết đây là một lỗi đơn giản và không phổ biến, nhưng chắc chắn đã giúp tôi.


5

Cách tốt nhất để làm điều đó:

  1. Trong Tiêu đề, thêm các giá trị khóa sau:

    Content-Type to applications/json
    Accept to applications/json
  2. Trong phần thân, nhấp rawvà thả xuống đểapplication/json

PFA cũng vậy

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


4

Đối với một Json lồng nhau (ví dụ bên dưới), bạn có thể tạo một truy vấn bằng cách sử dụng postman như hiển thị bên dưới.

{
    "Items": {
        "sku": "10 Units",
        "Price": "20 Rs"
    },
    "Characteristics": {
        "color": "blue",
        "weight": "2 lb"
    }
}

nhập mô tả hình ảnh ở đây


1

Trong Params tôi đã thêm model.Email và model.Password, hoạt động tốt với tôi. Cảm ơn câu hỏi. Tôi đã thử điều tương tự trong các tiêu đề không hoạt động. Nhưng nó hoạt động trên Body với dữ liệu biểu mẫu và x-www-form-urlencoding.

Người đưa thư phiên bản 6.4.4

nhập mô tả hình ảnh ở đây



1

Chỉ dành cho những người muốn gửi một đối tượng JSON lồng nhau với dữ liệu biểu mẫu dưới dạng kiểu nội dung.

Tôi muốn gửi custom_field lồng nhau bên dưới { "description": "Details about the issue...", "subject": "Support Needed...", "type": "Others", "email": "tom@outerspace.com", "priority": 1, "status": 2, **"custom_fields" : { "cf_type_of_issue" : "Complaint" }**, "cc_emails": ["ram@freshdesk.com","diana@freshdesk.com"] }

nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.