gpt4 book ai didi

javascript 对象属性类型仅接受数字

转载 作者:行者123 更新时间:2023-11-28 03:56:09 26 4
gpt4 key购买 nike

我发出 Ajax Post 请求,将下面的 Javascript 对象作为 Json 参数发送到 MVC 操作:

 var productName, exchangeName, productCode, stockCode;
var categoryID, brandID, stockAmount, state, shippingWeight;

var sendinfo =
{
"pcb": {
"ProductViewModel": {
"ProductName": + $('#ProductViewModel_ProductName').val()
"ProductCode": + $('#ProductViewModel_ProductCode').val(),
"StockCode": +$('#StockViewModel_StockCode').val(),
"StockAmount": +$('#StockViewModel_StockAmount').val(),
"ShippingWeight": +$('#ProductViewModel_ShippingWeight').val(),
"State": +state
},
"CategoryViewModel": { "Kategori": +categoryID },
"BrandViewModel": { "BrandName": +brandID },
"ExchangeViewModel": { "ExchangeName": +exchangeName }
}
};

我的问题是关于这些属性的类型。有些应该作为字符串输入,但该对象只接受数字(当我将鼠标悬停在 PCB 上时看到),并且当我输入数字以外的字符串时输出 null。为什么会发生这种情况?

我尝试将属性一一转换为:

string($('#StockViewModel_StockCode').val())

还尝试了 JSON.stringify() 但在该对象内不起作用...

最佳答案

Why is this happening?

因为代码明确地告诉它,使用一元 +:

"ProductName": + $('#ProductViewModel_ProductName').val()
// ------------^

"CategoryViewModel": { "Kategori": +categoryID }
// --------------------------------^

等等。

当您将一元 + 应用于字符串时,它会被强制转换为数字。如果无法将其识别为有效数字,则结果为 NaN。 (您说过您看到的是 null,这表明在某个时刻,您正在序列化为 JSON;NaN 会转换为 null > 当序列化为 JSON 时,因为 JSON 没有 NaN 值。)

如果您需要字符串,请从生成相关属性的代码中删除 +

关于javascript 对象属性类型仅接受数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47527169/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com