Залп JSON Разбор цикла Петли - PullRequest
0 голосов
/ 26 апреля 2020

Я успешно проанализировал JSON и показал результаты в RecyclerView. Но я совершенно новичок в Волей и Java и, следовательно, у меня есть некоторые проблемы, связанные с анализом объектов. Вот код, который я использую:

url_req = new JsonArrayRequest(server_tag_url, new Response.Listener<JSONArray>() {
    @Override
    public void onResponse(JSONArray response) {
        JSONObject jsonObject = null;
        for (int i = 0; i < response .length();i++){
            try {
                jsonObject = response.getJSONObject(i);
                TagUrlResultsModel tagUrlResultsModel = new TagUrlResultsModel();
                tagUrlResultsModel.setV_tags(jsonObject.getString("tag"));
                url_result.add(tagUrlResultsModel);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
        results_tag(url_result);

    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {

    }
});

Вот JSON:

[
    {
        "tag": "Nice Tag"
    },
    {
        "tag": "Example"
    }
]

Он отлично работает и отображает все теги в RecyclerView. Но проблема в том, что если я захочу получить другие элементы из файла JSON и показать их в других элементах макета. Я имею в виду, например, Название, Описание и др. c.

Вот новый JSON Я хочу разобрать:

{

    "title": "Awesome Title",
    "Description": "Awesome Description",
    "tags": [{
            "0": "tag1"
        },
        {
            "1": "tag2"
        },
        {
            "2": "Awesome Tag"
        }
    ]
}

1 Ответ

0 голосов
/ 26 апреля 2020

Для заголовка и описания я бы порекомендовал добавить эти поля в вашу модель.

Я воссоздал ваш объект и проанализировал его с помощью JSON Object, затем набрал приведение к типу String, а затем снова набрал приведение к * 1011. * Объект.

        try{

        // Recreating the Object
        JSONArray tags = new JSONArray();
        for (int i = 0; i < 3; i++) {

            JSONObject jsonObject = new JSONObject();
            jsonObject.put(String.valueOf(i),"Tag # "+i);
            tags.put(jsonObject);
        }

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("title","Awesome Title");
        jsonObject.put("Description","Awesome Description");
        jsonObject.put("tags",tags);


        Log.d(TAG, "parseObject: Sample JSON "+jsonObject);

        String stringObj = String.valueOf(jsonObject);

        Log.d(TAG, "parseObject: Stringify "+ stringObj);

        JSONObject convertedObj = new JSONObject(stringObj);

        Log.d(TAG, "parseObject: Converted Obj "+convertedObj);


        String title = convertedObj.getString("title");
        String description = convertedObj.getString("Description");

        Log.d(TAG, "parseObject: Title = "+title+" -  Description = "+description);

        JSONArray parsedTagsArr = convertedObj.getJSONArray("tags");

        for (int i = 0; i < parsedTagsArr.length(); i++) {

            JSONObject jsonObject1 = parsedTagsArr.getJSONObject(i);
            Log.d(TAG, "parseObject: Tags Array "+jsonObject1);
        }



    }catch (Exception e){
        // TODO
        Log.d(TAG, "parseObject: "+e);
    }

Вот как выглядят мои журналы после выполнения следующего кода. Android Log Cat image

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...