Не удается разобрать JSON в Android

у меня есть json, который получает json от моего веб-сервиса. Который будет выглядеть так,

{"JSONDataResult":"[{\"id\":3,\"e_code\":123533,\"type\":\"ab\",\"description\":\"sick-leave\",\"remarks\":\"test\",\"req_date\":\"2016-07-01T12:22:34\",\"date\":\"01\/07\/2016\",\"response\":null,\"aproved_date_time\":null,\"status\":\"not seen\"}]"}

при проверке его из json http://www.jsoneditoronline.org/ он говорит, что имеет только один объект. Я даже не могу преобразовать его в массив json из клиентского приложения для Android, он говорит так

 org.json.JSONException: Value [{"id":3,"e_code":123533,"type":"ab","description":"sick-leave","remarks":"test","req_date":"2016-07-01T12:22:34","date":"01/07/2016","response":null,"aproved_date_time":null,"status":"not seen"}] at JSONDataResult of type java.lang.String cannot be converted to JSONArray

Я использую AsyncHttpClient (loopj) для анализа json

client.get("http://192.168.1.6/JSONService/RESTService.svc/json/dddd",new JsonHttpResponseHandler(){
        @Override
        public void onSuccess(int statusCode, Header[] headers, JSONObject response) {


                try {

                    String str=response.toString();

                    JSONObject jobj=new JSONObject(str);
                    jsonArray=jobj.getJSONArray("JSONDataResult");

                    ...

person noushad    schedule 08.07.2016    source источник
comment
извините, это был дублирующий вопрос this   -  person noushad    schedule 08.07.2016
comment
почему вы хотите снова преобразовать json в строку? почему бы вам не разобрать его напрямую ??   -  person SripadRaj    schedule 08.07.2016
comment
я нашел там ответ...   -  person noushad    schedule 08.07.2016
comment
JSON является объектом с одним элементом, значением которого является строка, которая сама по себе является JSON. Так что вам придется разобрать его дважды. Если у вас есть какой-либо контроль над производителем, я бы предложил изменить его.   -  person Biffen    schedule 08.07.2016


Ответы (1)


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

Допустим, вы получаете ответ в переменной ниже как strData

 strData = strData.replaceAll("\\","");

  JSONObject jsonObject = new JSONObject(strData);
  JSONArray jsonArray = jsonObject.getJSONArray("JSONDataResult");
person Vickyexpert    schedule 08.07.2016
comment
Это просто уничтожит JSON. Плохая идея. - person Biffen; 08.07.2016