gpt4 book ai didi

Java:解析一个字符串中的多个Json对象

转载 作者:行者123 更新时间:2023-11-29 10:18:58 25 4
gpt4 key购买 nike

我正在尝试解析来 self 的网络服务的 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 代码片段...

    $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 格式

最佳答案

您似乎返回了 3 个不同的结果。所以,一些可能性...

  1. 将字符串形成一个 JSONArray,然后解析它...

    JSONArray jsonObj = new JSONArray("["+jsonStr.replaceAll("}{","},{")+"]");

    然后遍历数组的每个子项以获得纬度/经度。

  2. 将返回的字符串拆分为单独的结果字符串,并分别解析它们。也许是这样的……

    String[] results = jsonStr.replaceAll("}{","}}{{").split("}{");

    请注意,我们首先替换了所有内容,这样我们就可以在每个结果的开头/结尾保留 {


更好的办法是修复您的 PHP 服务器代码。您基本上只需要在开始处有一个 [,在结尾处有一个 ],在每个结果之间有一个 ,。我认为这样的事情可能会做到(请为我修正语法——我不是 PHP 编码员)。

    $counter = 0;
// read them back
$result = mysql_query( "SELECT * FROM locations" );
echo '[';
while( $data = mysql_fetch_assoc($result) ) {
if (&counter >= 1){
echo ',';
}
$latFromDb = $data['latitude'];
$longFromDb = $data['longitude'];
$variable = array( 'lon'.$counter => "$longFromDb", 'lat'.$counter => "$latFromDb" );
// One JSON for both variables
echo json_encode($variable);
$counter++;
}
echo ']';

一旦你明白了,你应该能够说 new JSONArray(serverResult) 它会将你的所有结果解析成一个你可以迭代的 JSON 数组。

关于Java:解析一个字符串中的多个Json对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10433001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com