Имеется код:
String line = null;
StringBuilder sb = new StringBuilder();
while ((line = bufferedReader.readLine()) != null) {
sb.append(line);
}
bufferedReader.close();
result = sb.toString();
Log.e("Resul-----------",result);
JSONArray jsonArray = new JSONArray(result);
JSONObject jsonObject = jsonArray.getJSONObject(0);
int success = jsonObject.getInt("success");
String message = jsonObject.getString("message");
Json приходит примерно вот такой:
{"message":"Пользователь добавлен.","succes":1}
Ошибка:
E/Resul-----------: {"succes":1,"message":"\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d."}
W/System.err: org.json.JSONException: Value {"message":"Пользователь добавлен.","succes":1} of type org.json.JSONObject cannot be converted to JSONArray
W/System.err: at org.json.JSON.typeMismatch(JSON.java:111)
at org.json.JSONArray.<init>(JSONArray.java:91)
at org.json.JSONArray.<init>(JSONArray.java:103)
at com.example.danilshik.myapplication.RegisterActivite$createUser.doInBackground(RegisterActivite.java:157)
at com.example.danilshik.myapplication.RegisterActivite$createUser.doInBackground(RegisterActivite.java:111)
at android.os.AsyncTask$2.call(AsyncTask.java:264)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Думаю из-за кодировки не может обработать json. Как исправить?
PHP:
$response = array();
$response["succes"] = 1;
$response["message"] = "Пользователь добавлен.";
echo json_encode($response);
Сборка персонального компьютера от Artline: умный выбор для современных пользователей