【发布时间】:2012-05-13 01:31:53
【问题描述】:
我正在尝试解析来自我的网络服务的 Json 响应。我从我的网络服务器收到这个字符串。
{"lon0":"30.13689","lat0":"-96.3331183333333"}{"lon1":"30.136965","lat1":"-96.33252"}{"lon2":"30.1370383333333","lat2":"-96.3319233333333"}
我将它放入一个名为 jsonStr.. 的字符串中。 然后我将它放入一个对象中。并获取我需要的字符串。
JSONObject jsonObj = new JSONObject(jsonStr);//place it into an object
String longitudecord = jsonObj.getString("lon0");//retrieve the lon0
String latitudecord = jsonObj.getString("lat0");
当我尝试上面的代码时,我得到正确的经度线是 30.13689,正确的纬度线是 -96.3331183333333。
但是当我运行它时
String longitudecord = jsonObj.getString("lon1");
String latitudecord = jsonObj.getString("lat1");
我没有得到正确的经度和纬度。它抛出一个异常。所以我不认为我试图正确获得“lon1”和“lat1”。
谁能帮我解决这个问题?
***更新***** ** 我的 php 代码 sn-p...
$counter = 0;
// read them back
$result = mysql_query( "SELECT * FROM locations" );
while( $data = mysql_fetch_assoc($result) ) {
$latFromDb = $data['latitude'];
$longFromDb = $data['longitude'];
$variable = array( 'lon'.$counter => "$longFromDb", 'lat'.$counter => "$latFromDb" );
// One JSON for both variables
echo json_encode($variable);
$counter++;
}
我怎样才能返回正确的 json 格式
【问题讨论】:
-
请将您的标题更新为更具描述性的标题(每个可用的 JSON 字符串都不止“{}”...)
-
我建议将 json 字符串形成为对象数组 [{},{},...]
-
那是有效的 JSON 字符串吗?我不确定……
-
{}{}不是有效的 JSON。见json.org -
无效的 JSON。看起来用户请求了 4 个单独的 lat/logs,它们被附加到一个字符串中,而不是形成一个数组。