Android JSONObject.getString()会对大数字进行搜索

时间:2017-09-24 22:46:07

标签: android json phone-number

当我尝试从服务器发送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);

一切正常,直到我用“/”发送网页我试图逃避//或/但没有任何作用......

2 个答案:

答案 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_numberpostal_code应该是字符串,因为并非所有街道号码(221B)或邮政编码(大多数都在英国)都是整数。

答案 1 :(得分:0)

当你输入long类型时,可能会导致这种情况,你可以传入传入的String类型。像这样:

JSONObject json=new JSONObject();
json.put("myNumber",420123456789.toString())