2013-03-03 33 views
0

我想从jason webservice获取数据获取数据,可能无法从JSON Web服务

JSON的反应是:

{"content":[{"id":"1","asset_id":"62","title":"sample page","alias":"","introtext":"","fulltext":"Some Contents"},{"id":"2","asset_id":"62","title":"sample page2","alias":"","introtext":"","fulltext":"Some Contents"},{"id":"3","asset_id":"62","title":"sample page3","alias":"","introtext":"","fulltext":"Some Contents"}]} 

参观Here 我已经在这样做了之后:

private void parseData() { 
    // Creating JSON Parser instance 
    JSONParser jParser = new JSONParser(); 

    // getting JSON string from URL 
    JSONObject json = jParser.getJSONFromUrl(BASE_URL); 

    try { 
     // Getting Array of Contents 
     contents = json.getJSONArray(TAG_CONTENTS); 

     // looping through All Contents 
     for(int i = 0; i < contents.length(); i++){ 
      JSONObject c = contents.getJSONObject(i); 

      // Storing each json item in variable 
      id = c.getString(TAG_ID); 
      title = c.getString(TAG_TITLE);  
     } 

     textView.setText(id + " " + title); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
} 

现在我得到了id = 3和title = sample page3结果现在我怎么能得到前两个值作为也!!?

+0

这是怎么回事?什么是错误? – 2013-03-03 08:50:38

+0

没有任何错误,但结果也没有显示! – 2013-03-03 08:52:56

+1

你确定你没有结束例外吗?如果是这样,请提供你的堆栈跟踪,并且不要让你的catch部分空着,你应该处理这个异常。 – Triode 2013-03-03 08:58:36

回答

1

Arshay!试试这个人!

private void parseData() { 
    // Creating JSON Parser instance 
    MyJSONParser jParser = new MyJSONParser(); 

    // getting JSON string from URL 
    JSONObject json = jParser.getJSONFromUrl(BASE_URL); 

    try { 
     // Getting Array of Contents 
     jsonArrar = json.getJSONArray(TAG_CONTENTS); 
     List list = new ArrayList<String>(); 
     // looping through All Contents 
     for(int i = 0; i < jsonArrar.length(); i++){ 
      // JSONObject c = jsonArrar.getJSONObject(i); 


      String id1=jsonArrar.getJSONObject(i).getString(TAG_ID);     
      String title=jsonArrar.getJSONObject(i).getString(TAG_TITLE);    
      String fullText=jsonArrar.getJSONObject(i).getString(TAG_FULL_TEXT);     

      list.add(id1); 
      list.add(title); 
      list.add(fullText); 
     } 

     Iterator<String> iterator = list.iterator(); 
     StringBuilder builder = new StringBuilder(); 
     while (iterator.hasNext()) { 
      String string = iterator.next();     
      builder.append(string+"\n"); 

     } 

     textView.setText(builder); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
} 
+0

谢谢!亲爱的它岩石! – 2013-03-03 20:30:36

0

你的线路是JSONObject而不是JSONArray

你应该使用这样的:

JSONObject jso = new JSONObject(line); 
JSONArray jsa = new JSONArray(jso.getJSONArray("content")); 
+0

这给了我错误'.getString(“id”);' – 2013-03-03 09:15:59

0

尝试是这样的

// jsonData:响应

名单< String>的内容=新的ArrayList <字符串>();

String [] val;

  try { 


     JSONObject jsonObj = new JSONObject(jsonData); 
     if (jsonObj.get(JSON_ROOT_KEY) instanceof JSONArray) { 

      JSONArray array = jsonObj.optJSONArray(JSON_ROOT_KEY); 
      for (int loop = 0; loop < array.length(); loop++) { 
val = new String[loop]; 
JSONObject Jsonval = array.getJSONObject(loop); 
val.Jsonval.getString(TAG_ID); 
val.Jsonval.getString(asset_id); 

。 。 etc

contents.add(val);

} 
} 

}

+0

对不起,但这并不行! – 2013-03-03 13:18:14