当我尝试从服务器发送JSONObject时,我的号码 00420123456789 就像电话号码一样(但是保存在数据库中,并以服务器的形式从字符串发送!!)
当我在android中获取它时,它在JSONObject中缩短为 420123456789 对我来说没问题我可以在开头再添加两个零
BUT
当我尝试String s = JSONObject.getString("myNumber")
时,它会返回4.20607238118E11。
有人可以告诉我这件事吗?我不知道该怎么做尝试了很多谷歌搜索,但看起来没有人用JSON发送长号。
修改 缩短并更改了个人数据,但这是我收到的JSON:
{
Id: 1,
name: myName,
city: Prague,
street: Karlovarska,
street_number: 48,
postal_code: 50280,
phone_number: 420123456789,
email: email@email.com,
webpage: www.aaa.com/page.aspx,
}
出现了另一个问题:在JAVA(android)中使用
JSONObject json = new JSONObject(jsonStringFromWeb);
一切正常,直到我用“/”发送网页我试图逃避//或/但没有任何作用......
答案 0 :(得分:2)
更改JSON以使phone_number
成为字符串,而不是整数:
{ Id: 1, name: myName, city: Prague, street: Karlovarska, street_number: 48, postal_code: 50280, phone_number: "420123456789", email: email@email.com, webpage: www.aaa.com/page.aspx, }
毕竟,并非所有世界上的电话号码都是整数。
同样,street_number
和postal_code
应该是字符串,因为并非所有街道号码(221B
)或邮政编码(大多数都在英国)都是整数。
答案 1 :(得分:0)
当你输入long类型时,可能会导致这种情况,你可以传入传入的String类型。像这样:
JSONObject json=new JSONObject();
json.put("myNumber",420123456789.toString())