JSON解析数据问题?

json解析之后 得到的一个数据是0,在native中获取到的是5,经过定位发现,如果传 0 到native侧就正常,如果是拿解析后到bean中的number数据过去 就是5,debug发现,解析后 number的0是带有 “0”的。

阅读 586
1 个回答

解决方案:

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。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进