json解析之后 得到的一个数据是0,在native中获取到的是5,经过定位发现,如果传 0 到native侧就正常,如果是拿解析后到bean中的number数据过去 就是5,debug发现,解析后 number的0是带有 “0”的。
解决方案:1、查看json 的原始数据类型和被赋值的数据类型,json parse 是会根据名称来解析,不会根据变量类型。可以在jsonparse的时候做处理。class Dead { name:string = '' age: string = '' gender?:string } let god:Dead = new Dead() // JSON.parse 是根据给定的字符串json化,然后返回结果的, 与指定的变量类型无关 god = JSON.parse('{"name":"zzzz","xiaoming": {"name":"XXX","age":18}}', (key:string,value: string | Number): void| string| Number => { // 将"age":18 转化成"age":"18" if (key == 'age' && typeof value == 'number') { value = value.toString() } return value }) console.log('== ' + god.age)2、如果你jsonData 中 serial\_num 是number类型的,在运行后,cardData 里面的 serial\_num 就从string变成了number类型的,你可以做±*/ 是因为被转换成了number类型了。但是你如果用length就会发现,长度不对。请规范变量类型,特别是number 和string。
解决方案:
1、查看json 的原始数据类型和被赋值的数据类型,json parse 是会根据名称来解析,不会根据变量类型。可以在jsonparse的时候做处理。
2、如果你jsonData 中 serial\_num 是number类型的,在运行后,cardData 里面的 serial\_num 就从string变成了number类型的,你可以做±*/ 是因为被转换成了number类型了。但是你如果用length就会发现,长度不对。请规范变量类型,特别是number 和string。