2015-10-19 54 views
0

我想解析URL來獲取JSON響應和來自該響應的特定值。我沒有示例代碼。請給我一個簡單的解決方案。 下面我發佈了我的網址和回覆。我想「學校」,姓名」和結果值如何解析嵌套的JSON使用Android?

http://sample.com/login/username/ <username> /password <password>? 

{ 
    "response":{ 
       "School":"SBOA", 
       "Name":"Anitha", 
       "Class":"Tenth", 
       }, 
       "Result":"Good", 
} 

我的代碼:

public class MainActivity extends Activity { 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     TextView output = (TextView) findViewById(R.id.textView1); 
     String strJson="URL"; 
     String data = ""; 
     System.out.println(strJson); 

     try { 
      JSONObject jsonRootObject = new JSONObject(strJson); 

      //Get the instance of JSONArray that contains JSONObjects 
      JSONArray jsonArray = jsonRootObject.optJSONArray("response"); 
      System.out.println(jsonRootObject); 

      //Iterate the jsonArray and print the info of JSONObjects 
      for(int i=0; i < jsonArray.length(); i++){ 
       JSONObject jsonObject = jsonArray.getJSONObject(i); 

      // int id = Integer.parseInt(jsonObject.optString("id").toString()); 
       String name = jsonObject.optString("School").toString(); 
      // float salary = Float.parseFloat(jsonObject.optString("salary").toString()); 

      // data += "Node"+i+" : \n id= "+ id +" \n Name= "+ name +" \n Salary= "+ salary +" \n ";*/ 
      } 
      //output.setText(data); 
     } catch (JSONException e) {e.printStackTrace();} 
    } 
} 
+3

我們a不要在這裏做你的家庭工作。通過你自己或在_Google_上搜索如何解析Android中的JSON? –

+0

你試過了什麼? –

+0

我嘗試了很多示例代碼,但是。沒有簡單的解決辦法。我正在進行登錄活動。如果我解析這個URL,那麼一旦URL得到迴應,我需要去做另一個活動。 – android

回答

0

要正確讀取JSON,請使用:

/** Verify that your strJson string contains this: 
* { 
* "response":{ 
*    "School":"SBOA", 
*    "Name":"Anitha", 
*    "Class":"Tenth", 
*    }, 
*    "Result":"Good", 
* } 
*/ 
String strJson = ??; 
Log.d("TAG", "strJson: " + strJson); 
try { 
    JSONObject jsonRootObject = new JSONObject(strJson); 
    JSONObject response = jsonRootObject.getJsonObject("response"); 
    String schoolString = response.getString("School"); 
    String nameString = response.getString("Name"); 
    String classString = response.getString("Class"); 

    String result = jsonRootObject.getString("Result"); 
} catch(JSONException e) { 
    Log.e("TAG", "Error reading json: " + jsonRootObject.toString()); 
} 
+0

偉大的幫助!謝謝巴迪! – android

+0

我面對這個錯誤夥計:org.json.JSONException:類型java.lang.String的值http無法轉換爲JSONObject .. @ Joakim – android

+0

驗證strJson String包含有效的JSON。你的錯誤表明它包含字符串「http」。確認您確實正在下載一些JSON數據並將其放入strJson對象中 – Joakim

0

如果你有那麼一個JSONObject名爲JSON遵循這樣來學校價值

try{ 
jsonRootObject .getJSONObject("response").getString("School"); 
}catch(JSONException e) 
{ 
e.printStackTrace(); 
} 
+0

謝謝@Warlock。我已經發布了我的代碼請你看看。它是一種很好的解析方式? – android

+0

你究竟在做什麼,因爲你的代碼沒有顯示,你如何得到JSON – warlock

+0

我需要解析上面我提到了帶有多個(用戶名和密碼)參數的示例URL。然後,如果網址給出了正確的回覆,我需要回家活動。它是一個登錄過程。 – android