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

Joh*_*per 8 javascript json

{
    "UpdateRequest": {
        "SAASAS": {
            "SPO2": "99.00000",
            "VitalGroupID": "1219",
            "Temperature": "36.6666666666667",            
        },
        "Modified": 1,
        "ID": 25465
    }
}
Run Code Online (Sandbox Code Playgroud)

我怎么能发送VitalGroupID和温度作为整数而不是字符串....这是我点击提交按钮后形成的请求.

T.J*_*der 10

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

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

UpdateRequest.SAASAS.VitalGroupID = someInputElement.value;
Run Code Online (Sandbox Code Playgroud)

...... value永远的字符串.你需要解析它:

UpdateRequest.SAASAS.VitalGroupID = parseInt(someInputElement.value, 10);
Run Code Online (Sandbox Code Playgroud)

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


Cha*_* Ma 6

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

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

例如 sonObj["UpdateRequest"]["SAASAS"]["VitalGroupID"] = parseInt(jsonObj["UpdateRequest"]["SAASAS"]["VitalGroupID"], 10);

  • 看起来 ECMA-404 标准确实在 JSON 中的字符串和数字之间有所区别:http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf (2认同)