Как преобразовать строку Json в массив Json в Android Studio Java - PullRequest
0 голосов
/ 10 октября 2019

У меня есть строка Json, как показано ниже

["Monday","Tueday","wednesday","Thuesday","Friday","Saturday"]

Что я хочу сделать, это отправить эту строку Json на веб-сервер, используя библиотеку залпов android studio.

ТАК я продолжаю получатьэта ошибка

 com.android.volley.ParseError: org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONArray

Строка не может быть преобразована в JsonArray.

Итак, у меня есть 2 вопроса, с которыми мне нужна помощь.

Во-первых,Как преобразовать строку в JsonArray. Например, ниже String.

 ["Monday","Tueday","wednesday","Thuesday","Friday","Saturday"]

Мой второй вопрос касается передачи этого массива Jason (когда мы его создадим) на веб-сервер. Я изучал Hashmap, но не знаю, как отправить JsonArray в Hashmap.

У меня был код ниже, но он не работал.

@Override
        protected Map<String, String> getParams() throws AuthFailureError {
            return super.getParams();
        }

Я не знаю, как отправить JsaonArray в hashmap.

Итак, в целом, я хотел бы отправить эту строку выше на веб-сервер.

Ответы [ 3 ]

0 голосов
/ 10 октября 2019

Редактировать: Это для первого вопроса

Используйте это

JSONArray yourJsonArray = JSONArray.fromObject(yourJson);
0 голосов
/ 10 октября 2019

Ответ на первый вопрос:

Я думаю, что это не точный ответ от сервера, и в ответе есть тег HTML <br>.

, потому что строка Value <br of type java.lang.String cannot be... явносодержит строку <br, попробуйте заменить теги HTML и / или расшифровать / удалить теги HTML в обычный текст, а затем преобразовать этот простой текст JSON в JSONArray .

этот фрагментможет помочь вам с расшифровкой ответа:

String parsedReponse = Html.fromHtml(serverResponse).toString()
if (parsedReponse != null) parsedReponse = parsedReponse.trim();

Ответ на второй вопрос:

посмотрите библиотеки OkHttp3 и Retrofit, они довольно популярны и удивительны.

это может помочь вам отправить данные POST на ваш сервер


надеюсь, что это помогло вам:)

0 голосов
/ 10 октября 2019

Предположим, что имя строки myString.

rString = myString.replace('[','');
rString = rString.replace(']','');
rString = rString.replace('"','');
String split[] = rString.split(',').

Теперь у вас есть массив с именем split, где каждая позиция - день.

...