Как разобрать массив json с нулевым именем (только строки) - PullRequest
0 голосов
/ 18 ноября 2018

Я попытался разобрать этот адрес JSON, но не смог.Код, который я пробовал, не работает, данные не отображаются.Можете ли вы помочь мне?

Мой код;

private void parseJSON() {
    final String url = "json website";
    JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        JSONArray jsonArray = response.getJSONArray(null);
                        for (int i = 0; i < jsonArray.length(); i++) {
                            JSONObject hit = jsonArray.getJSONObject(i);
                            String imageref = hit.getString(null);

                            mExampleList.add(new ExampleItemRef(imageref));
                        }

Это JSON;

[
"https://www.asdasd.com/images/r/a.png",
"https://www.asdasd.com/images/r/b.png",
"https://www.asdasd.com/images/r/c.png",
"https://www.asdasd.com/images/r/d.png",
"https://www.asdasd.com/images/r/e.png"
]

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

Вы можете сделать это следующим образом:

ArrayList < ExampleItemRef > mExampleList = new ArrayList <ExampleItemRef > ();
String jsonStr =
    "[ \"https://www.asdasd.com/images/r/a.png\", \"https://www.asdasd.com/images/r/b.png\", \"https://www.asdasd.com/images/r/c.png\", \"https://www.asdasd.com/images/r/d.png\", \"https://www.asdasd.com/images/r/e.png\" ]";

try {
    JSONArray jsonArray = new JSONArray(jsonStr);
    for (int i = 0; i < jsonArray.length(); i++) {
        String imageref = jsonArray.getString(i);
        mExampleList.add(new ExampleItemRef(imageref));
    }
} catch (JSONException e) {
    e.printStackTrace();
}

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

Отредактировано: Попробуйте это:

private void parseJSON() {
    final String url = "json website";
    JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        JSONArray jsonArray = new JSONArray(response.toString());
                        for (int i = 0; i < jsonArray.length(); i++) {
                           String imageref = jsonArray.getString(i);
                           mExampleList.add(new ExampleItemRef(imageref));
                        }
0 голосов
/ 18 ноября 2018

Просто удалите все ненужные части из вашего кода и измените их, как показано ниже.Вам нужно указать строку json при создании массива

private void parseJSON() {
    final String url = "json website";
    JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        JSONArray jsonArray = response.getJSONArray(jsonString);
                          for (int i = 0; i < jsonArray.length(); i++) {
                                    mExampleList.add(new ExampleItemRef(jsonArray.getString(i)));
                                }
                        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...