Java — Android Studio + JSON получение значений

Я долго искал эту вещь, но все еще не могу ее найти.

У меня есть решения с JSONObject obj = new JSONObject(result) но я не могу использовать это, получая Необработанное исключение JSON там.

Итак, что я получил:

[{"NAME":"test"},{"NAME":"John"}]

Этот бит JSON может быть расширен.

Что я получил в своем коде:
Сначала я получаю данные из .php формы.

    public class Download extends AsyncTask<Void, Void, String> {

@Override
protected String doInBackground(Void... params) {
String out = null;

try {
DefaultHttpClient httpClient = new DefaultHttpClient();

final HttpParams httpParameters = httpClient.getParams();

HttpConnectionParams.setConnectionTimeout(httpParameters, 15000);
HttpConnectionParams.setSoTimeout(httpParameters, 15000);

HttpGet httpPost = new HttpGet(url);

HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();

out = EntityUtils.toString(httpEntity, HTTP.UTF_8);

} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

return out;

}

@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
showJSON.setText(result);
Log.e(TAG, result);
jsonText = result;
}
}

Чтобы показать код в приложении, я использую Textview:

    private ArrayList<searchResults> GetSearchResults(){
ArrayList<searchResults> results = new ArrayList<searchResults>();

searchResults sr1 = new searchResults();
sr1.setName("test"); //this should be jsonobj.getString("NAME")
results.add(sr1);

sr1 = new searchResults();
sr1.setName("test1"); //This should be jsonobj.getString("NAME")
results.add(sr1);


return results;
}

Теперь: как мне получить тестовое задание а также Джон кусок из массива? И после этого, как JSON может быть расширен, как мне сделать представление (private ArrayList getSearchResults) динамическим (автоматически добавляя новые строки для большего количества значений в массиве)?

Я надеюсь, что это несколько читабельно. Не стесняйтесь редактировать!

Заранее спасибо.

-1

Решение

Чтобы преобразовать JSON-String в объект, я бы рекомендовал использовать Gson.

Чтобы добавить Gson, добавьте compile 'com.google.code.gson:gson:2.4' к вашим зависимостям build.gradle.

SearchResult[] data = new Gson().fromJson(out, SearchResult[].class);

конвертирует вашу строку в массив SearchResults.

Однако я не знаю, что вы имеете в виду под динамическим добавлением, попробуйте обновить ваш вопрос, если преобразование работает.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]