如何从我的.json文件中获得以下格式的信息?:
[{"name":"My name","country":"Country name"}]
我得到了以下内容:
Json文件:{"name":"My name","country":"Country name"}
Java文件:@Override
protected JSONObject doInBackground(String... args) {
JsonParser jParser = new JsonParser();
JSONObject json;
json = jParser.getJSONFromUrl("http://example.com/myfile.json");
System.out.println("JSON: " + json);
if(json != null) {
try {
name = json.getString("name");
country = json.getString("country");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
您的响应中没有得到JSONObject
,您得到的是持有一个对象的JSONArray
。因此这些行是错误的
JSONObject json;
json = jParser.getJSONFromUrl("http://example.com/myfile.json");
你应该用
代替它JSONArray json;
得到第0个对象
JSONObject wholeObject = json.getJSONObject(0);
并从中获取字符串
name = wholeObject.getString("name");
country = wholeObject.getString("country");
你可以试试这个吗:
protected JSONObject doInBackground(String... args) {
JsonParser jParser = new JsonParser();
JSONObject json;
json = jParser.getJSONFromUrl("http://example.com/myfile.json");
System.out.println("JSON: " + json);
if(json != null) {
try {
JSONArray jsonArray = new JSONArray(json.toString());
JSONObject newJSON = jsonArray.get(0); //first index
name = newJSON.getString("name");
country = newJSON.getString("country");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}