将Json响应作为字符串和整数发送...

时间:2011-07-28 11:38:04

标签: javascript json

{
    "UpdateRequest": {
        "SAASAS": {
            "SPO2": "99.00000",
            "VitalGroupID": "1219",
            "Temperature": "36.6666666666667",            
        },
        "Modified": 1,
        "ID": 25465
    }
}

如何将VitalGroupID和Temperature作为Integer而不是String发送....这是我点击提交按钮后形成的请求。

5 个答案:

答案 0 :(得分:10)

单击按钮时,您需要显示创建请求的代码。基本上,如果您要序列化的对象包含数字而不是字符串,则生成的JSON将包含数字而不是字符串。所以问题是你要序列化的对象有字符串。

但是,例如,如果您从HTML输入字段或类似字体中获取这些值,例如:

UpdateRequest.SAASAS.VitalGroupID = someInputElement.value;

... value 总是一个字符串。你需要解析它:

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

请注意,最好使用parseInt并给它基数(数字基数,通常为10),否则会遇到写为“08”和类似数字的问题。

答案 1 :(得分:2)

严格来说,json是无类型的,因此你不能将它作为整数发送,它必须是一个字符串。 javascript对象有点不那么严格,所以你有他们的意志评估javascript对象,但没有严格的json解析器将能够理解它。

您可以做的最好的事情是使用parseInt转换您知道的客户端数字字段。

e.g。 sonObj["UpdateRequest"]["SAASAS"]["VitalGroupID"] = parseInt(jsonObj["UpdateRequest"]["SAASAS"]["VitalGroupID"], 10);

答案 2 :(得分:1)

JSON支持数字作为值。所以:

var r = {
    "UpdateRequest": {
        "SAASAS": {
            "SPO2": "99.00000",
            "VitalGroupID": "1219",
            "Temperature": "36.6666666666667",            
        },
        "Modified": 1,
        "ID": 25465
    }
}
r.UpdateRequest.SAASAS.VitalGroupID = +r.UpdateRequest.SAASAS.VitalGroupID

答案 3 :(得分:0)

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

答案 4 :(得分:0)

如果你想在客户端处理它(如你所提到的JSON,JAvascript)。解析JSON对象后,可以执行以下操作。 parseInt(UpdateRequest.SAASAS.VitalGroupID,10)UpdateRequest.SAASAS.VitalGroupID*1对“temparature”变量也采用相同的方法。