2009-06-03 41 views
5
{"something":"1","mode":"true","number":"1234"} 

Vì tôi nhận được 406 khi mong đợi JSON.Đây có phải là JSON hợp lệ không?

Nó đang được tạo qua Jersey, được cho biết rằng một phương pháp @Sản xuất JSON. Nó được nhận bởi một Dojo xhrGet có JSON được đặt làm handleA của nó.

EDIT - Để làm rõ, tôi không quan tâm đến mã mà tôi đánh giá hoặc bất kỳ thứ gì như thế. Câu hỏi rất đơn giản - đó có phải là JSON hợp lệ không?

+0

chia sẻ mã nơi bạn đánh giá. –

+0

Đó là JSON hợp lệ. – Nosredna

Trả lời

14

Đó là, nhưng bạn có cả hai phần tử boolean (mode) và số (number) làm chuỗi. Không được:

{"something":"1","mode":true,"number":1234} 
+0

Cảm ơn, sẽ xem xét điều này. – mtrc

1

Nếu bạn muốn sử dụng các số trực tiếp, bạn không nên đặt chúng trong dấu ngoặc kép. Đó là JSON hợp lệ, nhưng rất có thể là những gì bạn muốn làm là:

{ "cái gì đó": 1, "chế độ": "true", "số": 1234}

Bạn cần phải bổ sung thêm thông tin nếu bạn muốn có câu trả lời tốt hơn.

CHỈNH SỬA: Eh ... và có, boolean không được trích dẫn, trừ khi bạn muốn tự mình chuyển đổi, vì một số lý do.

7

Đây là JSON hợp lệ nếu tất cả các giá trị của từ điển là Chuỗi. Đây cũng là JSON hợp lệ:

{ "cái gì đó": 1, "chế độ": đúng, "số": 1234}

Thông thường, tuy nhiên, một lỗi 406 sẽ xảy ra khi bạn yêu cầu một loại phản ứng (ví dụ dưới dạng html hoặc json) và máy chủ không thể gửi nó trong loại đó. Tại sao bạn cho rằng đầu vào không hợp lệ?

0
  • có điều này là hợp lệ JSON
  • mặc dù nếu bạn đang có kế hoạch xuất ra này là kết quả của một yêu cầu HTTP, bạn sẽ cần phải thoát khỏi tất cả các dấu ngoặc kép

$ str = " {\ "cái gì đó \": \ "1 \", \ "chế độ \": \ "đúng \", \ "số \": \ "1234 \"} "; echo $ str

6

Tôi sử dụng công cụ sao chép/dán đơn giản được gọi là JASONLint (http://www.jsonlint.com/) để kiểm tra các núi JSON của tôi. Bạn có thể đào nó.

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