为什么我得到 JSON 文本必须在字符 1 处以 '{' 开头



我试图从 json 获取信息。 使用谷歌地图API(地理编码( 我检查 IntelliJ 并得到:JSONObject 文本必须在字符 1 处以"{"开头 即使我使用我的老师处理 jsons 的方式。 他的代码工作和它几乎 100% 相同。 我使用需要从用户那里获取信息的构造函数"编辑"URL。 我可以获取完整的网址,它将我带到 json 文件,似乎一切都很好。但我不能用它来制作库尔,就像我在化妆中尝试的那样......方法

我的 json 阅读器代码:

import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.Charset;
public class MyCoorGiver {
public final String API_URL = "https://maps.googleapis.com/maps/api/geocode/json?address=";
private String cityName;
private final String andKey = "&key=";
private final String apiKey = "";
private String fullUrl;
private String rawData;
JSONObject jsonObject;
private double lat;
private double lng;
public String getFullUrl() {
return fullUrl;
}
public MyCoorGiver(String cityName) {
this.cityName = cityName;
this.fullUrl = this.API_URL + cityName + this.andKey + this.apiKey;
}
private JSONObject readFromJsonUrl() throws IOException, JSONException {
InputStream is = new URL(this.fullUrl).openStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
String jsonText = readAll(br);
jsonObject = new JSONObject(jsonText);
return jsonObject;
}
public String readAll(BufferedReader br) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
while((cp = br.read()) != -1){
sb.append(cp);
}
rawData = sb.toString();
return sb.toString();
}
public String getRaw(){
return rawData;
}
private double getLat() throws IOException, JSONException {
JSONObject myData = readFromJsonUrl();
JSONObject location = myData.getJSONObject("location");
double lat = location.getDouble("lat");
return lat;
}
private double getLng() throws IOException, JSONException {
JSONObject myData = readFromJsonUrl();
JSONObject location = myData.getJSONObject("location");
double lng = location.getDouble("lng");
return lng;
}

public String makeCoorString() throws IOException, JSONException {
lat = getLat();
lng = getLng();
String coor = lat + "," + lng;
System.out.println(coor);
return coor;
}
}

该 JSON :

{
results: [{
address_components: [{
long_name: "ראש העין",
short_name: "ראש העין",
types: [
"locality",
"political"
]
}, {
long_name: "פתח תקווה",
short_name: "פתח תקווה",
types: [
"administrative_area_level_2",
"political"
]
}, {
long_name: "מחוז המרכז",
short_name: "מחוז המרכז",
types: [
"administrative_area_level_1",
"political"
]
}, {
long_name: "ישראל",
short_name: "IL",
types: [
"country",
"political"
]
}
],
formatted_address: "ראש העין, ישראל",
geometry: {
bounds: {
northeast: {
lat: 32.117834,
lng: 34.9994091
},
southwest: {
lat: 32.051418,
lng: 34.932534
}
},
location: {
lat: 32.095838,
lng: 34.952177
},
location_type: "APPROXIMATE",
viewport: {
northeast: {
lat: 32.117834,
lng: 34.9994091
},
southwest: {
lat: 32.051418,
lng: 34.932534
}
}
},
place_id: "ChIJTbFX6ioxHRURHn9WS3zh798",
types: [
"locality",
"political"
]
}
],
status: "OK"
}

尝试从 json 文件中删除 { 之前的空格?

最新更新