2013-05-07 5 views
0

Я делаю приложение Android, в котором я должен использовать класс jsonparser. Но он непрерывно возвращает объект null json.Ошибка с моим парсером json

Еще одна вещь класса json parser вызывается из mainActivity с функцией dobackground asyktask.

JSON ОТВЕТ:

{"products":[ 

{"pid":"1","name":"sulman", 

"price":"125.00","created_at":"2013-05-05 04:00:00", 
"updated_at":"2013-05-07 07:21:28"}, 
"pid":"2", 

"name":"faizan", 

"price":"124.00", 

"created_at":"2013-05-06 05:00:00", 
"updated_at":"2013-05-08 04:28:04"}],"success":1} 




This my json parser class 
public class JSONParser { 

    static InputStream is = null; 
    static JSONObject jObj = null; 
    static String json = ""; 

    // constructor 
    public JSONParser() { 

    } 

    // function get json from url 
    // by making HTTP POST or GET method 
    public JSONObject makeHttpRequest(String url, String method, 
      List<NameValuePair> params) { 

     // Making HTTP request 
     try { 

      // check for request method 
      if(method == "POST"){ 
       // request method is POST 
       // defaultHttpClient 
       DefaultHttpClient httpClient = new DefaultHttpClient(); 
       HttpPost httpPost = new HttpPost(url); 
       httpPost.setEntity(new UrlEncodedFormEntity(params)); 

       HttpResponse httpResponse = httpClient.execute(httpPost); 
       HttpEntity httpEntity = httpResponse.getEntity(); 
       is = httpEntity.getContent(); 

      }else if(method == "GET"){ 
       // request method is GET 
       DefaultHttpClient httpClient = new DefaultHttpClient(); 
       String paramString = URLEncodedUtils.format(params, "utf-8"); 
       url += "?" + paramString; 
       HttpGet httpGet = new HttpGet(url); 

       HttpResponse httpResponse = httpClient.execute(httpGet); 
       HttpEntity httpEntity = httpResponse.getEntity(); 
       is = httpEntity.getContent(); 
      }   

// catch the exception// 
     } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
     } catch (ClientProtocolException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
//bufferreader read the input stream// 
     try { 
      BufferedReader reader = new BufferedReader(new InputStreamReader(
        is, "iso-8859-1"), 8); 
      StringBuilder sb = new StringBuilder(); 
      String line = null; 
      while ((line = reader.readLine()) != null) { 
       sb.append(line + "\n"); 
      } 
      is.close(); 
      json = sb.toString(); 
      json = "{json_parse" + "[" + json + "]" + "}"; 
     } catch (Exception e) { 
      Log.e("Buffer Error", "Error converting result " + e.toString()); 
     } 

     // try parse the string to a JSON object 
     try { 
      jObj = new JSONObject(json); 
     } catch (JSONException e) { 
      Log.e("JSON Parser", "Error parsing data " + e.toString()); 
     } 

// возвращает пустой объект // возврата jObj;

} 
} 
+0

плз показать строки которой и получают от сервера –

+0

и удалить весь код, не связанный с проблемой JSon. – dutt

+0

ли вы регистрировали значения/сообщения в разных частях кода, чтобы узнать, введены ли циклы, и значения, как вы ожидаете от них? – RST

ответ

0

дополнительный } на код JSon или нужно добавить { на JSon код он должен быть этот

дополнительный }

{"products":[ 
    {"pid":"1","name":"sulman", 
    "price":"125.00","created_at":"2013-05-05 04:00:00", 
    "updated_at":"2013-05-07 07:21:28", 
    "pid":"2", 
    "name":"faizan", 
    "price":"124.00", 
    "created_at":"2013-05-06 05:00:00", 
    "updated_at":"2013-05-08 04:28:04"}],"success":1} 

выход

stdClass Object 
(
    [products] => Array 
    (
     [0] => stdClass Object 
      (
       [pid] => 2 
       [name] => faizan 
       [price] => 124.00 
       [created_at] => 2013-05-06 05:00:00 
       [updated_at] => 2013-05-08 04:28:04 
      ) 

    ) 

    [success] => 1 
) 

или нужно добавить {

{"products":[ 
    {"pid":"1","name":"sulman", 
    "price":"125.00","created_at":"2013-05-05 04:00:00", 
    "updated_at":"2013-05-07 07:21:28"}, 
    {"pid":"2", 
    "name":"faizan", 
    "price":"124.00", 
    "created_at":"2013-05-06 05:00:00", 
    "updated_at":"2013-05-08 04:28:04"}],"success":1} 

выход

stdClass Object 
(
    [products] => Array 
    (
     [0] => stdClass Object 
      (
       [pid] => 1 
       [name] => sulman 
       [price] => 125.00 
       [created_at] => 2013-05-05 04:00:00 
       [updated_at] => 2013-05-07 07:21:28 
      ) 

     [1] => stdClass Object 
      (
       [pid] => 2 
       [name] => faizan 
       [price] => 124.00 
       [created_at] => 2013-05-06 05:00:00 
       [updated_at] => 2013-05-08 04:28:04 
      ) 

    ) 

    [success] => 1 
) 
+0

Я ошибочно пропустил это {но в actall мой код включен это {на "pid: 2". – Shazar

+0

, если в json пропущено '{' NULL return в 'jObj = new JSONObject (json);' –

Смежные вопросы