js JSON.parse(JSON.stringify(item)) 如何避免把 0 和 1 变成boolean类型

JSON.parse(JSON.stringify(item))
这种东西,复制一个对象,结果把item里面的 0 和 1 自动变长 了 false 和 true
如何避免?

如下例子:

        console.log("origin", item);
        self.devTypeObj = JSON.parse(JSON.stringify(item))
        console.log("json", JSON.stringify(item));
        console.log("result", self.devTypeObj);

clipboard.png

clipboard.png

但经过 JSON.parse之后,把 0和 1 变成了 boolean值了。

clipboard.png

数据:

{
    "id": 75,
    "brand": "中信",
    "model": "ZR250VSD",
    "prol": "GeneralModbusRTU",
    "readInterval": 1,
    "useType": "盾构机",
    "iconUrl": null,
    "iotCollItems": [{
        "id": 158,
        "dataLen": 2,
        "isGet": 1,
        "name": "压力",
        "dataType": "short/10",
        "propertyType": 100,
        "unit": "℃",
        "valueAddr": 19,
        "valueAddrStr": "0",
        "warnDown": 0,
        "warnUp": 0
    }, {
        "id": 159,
        "dataLen": 2,
        "isGet": 1,
        "name": "频率",
        "dataType": "short/10",
        "propertyType": 100,
        "unit": "℃",
        "valueAddr": 19,
        "valueAddrStr": "0",
        "warnDown": 0,
        "warnUp": 0
    }]
}
阅读 3.6k
2 个回答

我试了下没发现这种情况,能附上代码吗


数据源能不能也给一下,给stringify以后的就好


图片描述

测试以后并没有问题

自动是不可能自动的,1true本来就不是一个东西。
你这里很明显有个感叹号,这又是console.log的问题,打印了一个快照但是引用被改了。

关于console.log的问题自己在站内搜一搜
https://segmentfault.com/q/10...

推荐问题
宣传栏