Разрешение JSON из URL-адреса и текстового просмотра публикации

как разрешить этот json для Android Studio

и нужно, чтобы каждый элемент индивидуально отображался в текстовом окне

Спасибо вам всем....

только содержание URL

{"s":true,"code":0,"errors":[],"c":"2.54","y":"5.8","i":"2.9","x":"0"}

Моя чья-то активность

public class aFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_a, null);
        super.onCreate(savedInstanceState);
        new TransTask()
                .execute("MYURL");
        return view;
    }
    class TransTask extends AsyncTask<String, Void, String>{

        @Override
        protected String doInBackground(String... params) {
            StringBuilder sb = new StringBuilder();
            try {
                URL url = new URL(params[0]);
                BufferedReader in = new BufferedReader(
                        new InputStreamReader(url.openStream()));
                String line = in.readLine();
                while(line!=null){
                    Log.d("HTTP", line);
                    sb.append(line);
                    line = in.readLine();
                }
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return sb.toString();
        }
    }
@Override
protected void onPostExecute(String s) {
    super.onPostExecute(s);
    Log.d("JSON", s);
    parseJSON(s);
}


private void parseJSON(String s) {
    try{
        JSONObject jsonObject = new JSONObject(s);

        String name = jsonObject.getString("s");
        String title = jsonObject.getString("code");
        String tag = jsonObject.getString("errors");
        String info = jsonObject.getString("c");
        String info = jsonObject.getString("y");
        String inf = jsonObject.getString("i");
        String in = jsonObject.getString("x");
    }
    catch(JSONException e) {
        e.printStackTrace();

    }
}

почему super.onPostExecute (s); не удается разрешить метод 'onPostExecute (java.lang.string)'

0
0
54
1

Ответы 1

Вы можете установить значения для различных виджетов в методе onPostExecute для своей AsyncTask.

Инициализируйте JSONObject возвращенной строкой. Затем используйте различные методы, такие как getBoolean, getString, getDouble и т. д. Для значений. Вы даже можете получить вложенные объекты или массивы json, используя методы getJSONObject и getJSONArray. Использование JSONObject потребует от вас обработки исключения JSONException в вашем коде.

    JSONObject jsonObject = new JSONObject(stringObject);
    boolean s = jsonObject.getBoolean("s");
    int code = jsonObject.getInt("code");
    JSONArray errors = jsonObject.getJSONArray("errors");
    //Similar to above

В качестве альтернативы вы также можете использовать библиотеку, такую ​​как GSON, для десериализации вашего json.

Большое спасибо, я обновил свой код, я не могу установить пост в textview1 ~ 7`, где и как?

Rex 22.04.2018 12:32

Ваш метод onPostExecute, похоже, выходит за рамки AysncTask. Иерархически он должен быть на том же уровне, что и метод doInBackground.

Karan Modi 22.04.2018 13:29

Другие вопросы по теме