java.lang.String的值无法转换为double

时间:2015-03-13 23:49:22

标签: java php android mysql

我有一个PHP Web服务,可以将数据从MySQL数据库中提取出来。

我有一个调用该服务的Android应用程序。

我的WAMP服务器本地一切正常但我只是将数据/服务上传到域并对其进行测试。

我收到此错误:

org.json.JSONException: Value  at Latitude of type java.lang.String cannot be converted to double

从这行代码:

double latitude = thisVenue.getDouble(TAG_LATITUDE);

导致此错误的值(来自通过Android Studio的日志)是:

"Latitude":"51.05279"

我看不出为什么这个值无法转换为double。本地我的应用程序可以解析相同的数据集没有问题,所以我认为它与如何存储/检索有关?

编辑:这是JSON中返回的对象之一,请注意所有值都有引号

{"VenueID":"4","ListingID":"19","Name":"TempName1","Location":"207 10A St NW","DayOfWeek":"Mon","Featured":"0","FeaturedDistanceRange":"0","Latitude":"51.05279","Longitude":"-110.087509","StartHour":"4","StartHourType":"pm","StartMinute":"0","EndHour":"7","EndHourType":"pm","EndMinute":"0"}

我将其格式化为JSON,如下所示:

    header("Content-type: application/json");
    print(json_encode(array('venues'=>$data)));

2 个答案:

答案 0 :(得分:0)

由于来自服务器的数据不是双倍的,你必须使用

double latitude = Double.valueOf(thisVenue.getString(TAG_LATITUDE));

答案 1 :(得分:0)

检查你是否从getDouble()方法获得了有效的双回(编译器认为你不是。如果以下编译并在运行时抛出NumberfFormatException,那么你知道你没有得到有效的double。 而“Latitude”:“51.05279”看起来不像一个可解析的双,“51.05279”会没事的。

double latitude = Double.parseDouble(thisVenue.getDouble(TAG_LATITUDE));