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

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

在我的WAMP Server上,本地一切正常,但是我只是将数据/服务上传到域中并对此进行了测试。

我收到此错误:

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"


我不明白为什么该值不能转换为双精度。在本地,我的应用程序可以解析相同的数据集,没有问题,所以我认为它与存储/检索方式有关吗?

编辑:这是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)));

最佳答案

由于来自服务器的数据不是两倍,因此您必须使用

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

07-25 21:47