我想解析一个json文件,这是我的代码:
import org.json.JSONArray;
import org.json.JSONObject;
public class principale {
public static void main(String[] args) {
// TODO Auto-generated method stub
String fichier ="C:\\listesanscoord.json";
JSONObject obj = new JSONObject("fichier");
String pageName = obj.getJSONObject("pageInfo").getString("pageName");
JSONArray arr = obj.getJSONArray("oaci");
for (int i = 0; i < arr.length(); i++)
{
String url = arr.getJSONObject(i).getString("url");
}
}
}
这是我的 json 文件: listesanscoord.json 我有以下错误:
Exception in thread "main" org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1]
at org.json.JSONTokener.syntaxError(JSONTokener.java:433)
at org.json.JSONObject.<init>(JSONObject.java:198)
at org.json.JSONObject.<init>(JSONObject.java:325)
at metar.principale.main(principale.java:13)
有人可以帮我吗,我找不到问题出在哪里,谢谢。
最佳答案
在 @nogard
答案的扩展中,我检测到文件中的 JSON 文本中有错误,JSON 字符串类似于 java map 或javascript对象有键值对,在你的文件中键定义错误,它应该用双引号(“”)所以键值对看起来像“key":"value String" 或 "key":value Number。欲了解更多信息,请查看link .
修改后,您的 json 将如下所示。
[
{
"oaci": "LFXA",
"aeroport": "Aérodrome d'Ambérieu",
"url": "https://fr.wikipedia.org/wiki/A%C3%A9rodrome_d%27Amb%C3%A9rieu",
"commune": "Chateau-Gaillard, Ambronay"
}
//more json objects
]
如果您像上面那样修改 json 文件将解决您的问题。
关于java - java : 的 JSON 解析器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33801462/