2011-07-28 65 views
8
{ 
    "UpdateRequest": { 
     "SAASAS": { 
      "SPO2": "99.00000", 
      "VitalGroupID": "1219", 
      "Temperature": "36.6666666666667",    
     }, 
     "Modified": 1, 
     "ID": 25465 
    } 
} 

Làm cách nào để gửi VitalGroupID và Nhiệt độ dưới dạng Số nguyên thay vì Chuỗi .... Đây là yêu cầu được tạo thành sau khi tôi nhấn nút gửi.Gửi phản hồi Json dưới dạng Chuỗi và Số nguyên ...

+0

JSON không phải luôn được gửi dưới dạng Chuỗi? Tôi nghĩ bạn phải bỏ kiểu thủ công –

+2

@ das: JSON là một ký hiệu văn bản, giống như mã nguồn JavaScript là một ký hiệu văn bản. Anh ta nói về '" VitalGroupID ":" 1219 "' (định nghĩa một thuộc tính với giá trị * string * "1219" ') trái ngược với' "VitalGroupID": 1219' (xác định thuộc tính với giá trị * số * '1219'). –

+0

Cảm ơn thông tin;) –

Trả lời

2

Nói đúng, json không được nhập sai, vì vậy bạn không thể gửi nó dưới dạng số nguyên, nó phải là một chuỗi. javascript đối tượng là một chút ít nghiêm ngặt, vì vậy những gì bạn có của họ sẽ đánh giá một đối tượng javascript, nhưng không có phân tích cú pháp json nghiêm ngặt sẽ có thể hiểu nó.

Điều tốt nhất bạn có thể làm là chuyển đổi các trường mà bạn biết là số ở phía máy khách bằng cách sử dụng parseInt.

ví dụ: sonObj["UpdateRequest"]["SAASAS"]["VitalGroupID"] = parseInt(jsonObj["UpdateRequest"]["SAASAS"]["VitalGroupID"], 10);

+12

JSON không được nhập? JSON khác nhau giữa chuỗi và số, hay? (http://json.org/) – Biber

+1

Có vẻ như tiêu chuẩn ECMA-404 tạo sự khác biệt giữa chuỗi và số trong JSON: http://www.ecma-international.org/publications/files/ECMA-ST/ECMA- 404.pdf –

0
new Number(jsonObject.UpdateRequest.SAASAS.VitalGroupID); 
10

Bạn cần hiển thị mã đang tạo yêu cầu khi bạn nhấp vào nút. Về cơ bản, nếu đối tượng bạn đang sắp xếp tuần tự chứa số thay vì chuỗi, kết quả JSON sẽ có số thay vì chuỗi. Vì vậy, vấn đề là đối tượng mà bạn đang serializing có chuỗi thay thế.

Nhưng ví dụ, nếu bạn đang nhận được các giá trị từ các lĩnh vực đầu vào HTML hoặc tương tự, ví dụ .:

UpdateRequest.SAASAS.VitalGroupID = someInputElement.value; 

... valueluôn một chuỗi. Bạn sẽ cần phải phân tích nó:

UpdateRequest.SAASAS.VitalGroupID = parseInt(someInputElement.value, 10); 

Lưu ý rằng nó là tốt nhất để sử dụng parseInt và để cho nó radix (căn cứ số lượng, thường là 10), nếu không bạn gặp sự cố với những con số được viết là "08" và giống.

0

Nếu bạn muốn xử lý nó ở phía Máy khách (Như bạn đã đề cập JSON, JAvascript). Bạn có thể làm như sau sau khi phân tích cú pháp đối tượng JSON. parseInt(UpdateRequest.SAASAS.VitalGroupID,10) hoặc UpdateRequest.SAASAS.VitalGroupID*1 Áp dụng cùng cho biến "temparature".

1

JSON hỗ trợ số làm giá trị. Vì vậy:

var r = { 
    "UpdateRequest": { 
     "SAASAS": { 
      "SPO2": "99.00000", 
      "VitalGroupID": "1219", 
      "Temperature": "36.6666666666667",    
     }, 
     "Modified": 1, 
     "ID": 25465 
    } 
} 
r.UpdateRequest.SAASAS.VitalGroupID = +r.UpdateRequest.SAASAS.VitalGroupID 
Các vấn đề liên quan