Эй, ребята, я все еще новичок в кодировании, связанном с Android и StackOverflow в целом, так что не будьте слишком резкими со мной, но я не смог найти вопрос, подобный этому, уже заданный здесь. : - /
Итак, я понимаю, что вы можете конвертировать строки JSON в строки и обрабатывать объекты JSON в целом с помощью пакета org.json в Android, но здесь моя текущая ситуация:
Мне нужно взять строку JSON с определенного URL (я уже могу успешно это сделать) и превратить ее в массив. Ну на самом деле два массива. Фреймворк, который я использую, работает на Python и возвращает dict, содержащий списки (массивы в Python). Однако он отображается как объект JSON. Вот пример того, что я получу от URL к моему Java-коду:
{"keywords": ["middle east", "syria"], "link": [["middle east", "http://www.google.com/#q=middle east"], ["syria", "http://www.google.com/#q=syria"]]}
Как видите, это диктат двух индексов. Первый - это «ключевые слова», в котором есть список, а второй - «ссылка», которая содержит список списков. Два списка (первый и второй многомерный) - это то, чем я хочу манипулировать в Java. Я знаю, что вы можете использовать JSONArray, но проблема в том, что массивы хранятся в Python dict, а мое приложение для Android неправильно создает JSONArray. Ребята, у вас есть идеи, как я могу справиться с этим? Я довольно потерян. Вот мой код для получения фактической строки JSON (URL-адрес в коде доступен не всем, его обслуживают вставкой на моем компьютере):
static public void refreshFeed(){
try{
String url = "http://192.17.178.116:8080/getkw?nextline="+line;
line++;
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url);
HttpResponse response;
response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
InputStream in = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder sb = new StringBuilder();
String input = null;
try {
while ((input = reader.readLine()) != null) {
sb.append(input + "\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
String enter = sb.toString();
feedEntry add = new feedEntry(enter);
addNewEntry(add);
in.close();
} catch(MalformedURLException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Обратите также внимание, что это без , JSONString превращается в JSONArray. Он просто переводит объект JSON в обычную строку, которая добавляется к объекту feedEntry.