0
我有一个没有标题的JSON数组。json阅读问题数组无标题
我一直试图阅读JSON,但它似乎保持失败。
我希望有一种不调用数组名称来解析JSON的例子。
任何帮助或指示我的方向的例子将不胜感激。我将在下面附上我有错误的代码。两个URL是我试图在读取数据的
https://www.descartes.com/rest/glossary-items
https://www.descartes.com/rest/glossary-sources
JsonParser:
public class JsonParser {
static InputStream is = null;
static JSONArray jarray = null;
static String json = "";
public JSONArray getJSONFromUrl(String url1) {
StringBuilder builder = new StringBuilder();
HttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url1);
try {
HttpResponse response = client.execute(httpGet);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
if (statusCode == 200) {
HttpEntity entity = response.getEntity();
InputStream content = entity.getContent();
BufferedReader reader = new BufferedReader(
new InputStreamReader(content));
String line;
while ((line = reader.readLine()) != null) {
builder.append(line);
}
} else {
Log.e("==>", "Failed to download file");
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// try parse the string to a JSON object
try {
jarray = new JSONArray(builder.toString());
// System.out.println(""+jarray);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
// return JSON String
return jarray;
}
}
doInBackground:
protected Void doInBackground(Void... arg0) {
String str = "";
JsonParser sh = new JsonParser();
// Making a request to url and getting response
String jsonStr = sh.getJSONFromUrl(url1, JsonParser.GET);
if (jsonStr != null){
try{
JSONArray jsonArr = new JSONArray(jsonArr);
test = jsonArr.getJSONObje(str);
// looping through All Contacts
for (int i = 0; i <= str.length(); i++) {
JSONObject c = str.getJSONObject(i);
String tid = c.getString(TAG_TID);
String title = c.getString(TAG_TITLE);
String acronym = c.getString(TAG_ACRONYM);
String description = c.getString(TAG_DESCRIPTION);
// tmp hashmap for single contact
HashMap<String, String> contact = new HashMap<String, String>();
// adding each child node to HashMap key => value
contact.put(TAG_TID, tid);
contact.put(TAG_TITLE, title);
contact.put(TAG_ACRONYM, acronym);
contact.put(TAG_DESCRIPTION, description);
// adding contact to contact list
glossaryList.add(contact);
}
} catch (JSONException e) {
e.printStackTrace();
}
} else {
Log.e("JsonParser", "Couldn't get any data from the url");
}
return null;
}
粘贴JSON的例子。 – Ali