2013-06-20 49 views
0

我有一個JSONstring這樣,讓每個字符串形式JSONstring ...如何從JSON字符串獲得Java中

在運行,我得到thiis錯誤錯誤轉換結果 顯示java.lang.NullPointerException

我該怎麼辦?

{"login":"1","error":"","id":"1","namespace":"dhruv","first_name":"Dhruv","last_name":"Patel","pro_pic_64_url":"URL","pro_pic_100_url":"URL","pro_pic_200_url":"URL"} 

而我的代碼來解析這個數據

JSONObject json = new JSONObject(data); 
    String login = json.getString("login"); 
    TextView welcome =(TextView)findViewById(R.id.textView1); 
    welcome.setText(login); 
    if(login=="1") 
    { 
     String namespace = json.getString("namespace"); 
     String id = json.getString("id"); 
     String first_name = json.getString("first_name"); 
     String last_name = json.getString("last_name"); 
     String pro_pic_64_url = json.getString("pro_pic_64_url"); 
     String pro_pic_100_url = json.getString("pro_pic_100_url"); 
     String pro_pic_200_url = json.getString("pro_pic_200_url"); 

    } 
+7

'if(login ==「1」)'。首先,不要使用==比較字符串的內容。其次請提供堆棧跟蹤。 –

+1

請發佈你的stacktrace。並且請使用if(login.equals(「1」)== true) – Milan

+2

@Milanix'if(「1」.equals(login))'就足夠了:) –

回答

0

由於login == "1"幾乎可以肯定是假的(應該使用equals),大概welcome是假的,fiendViewById的結果。

0

使用字符串equals()進行比較的方法,使用此

if("1".equals(login)) 

,而不是

if(login=="1") 
+1

這是一個錯誤,但我不明白爲什麼它會導致應用程序崩潰。 –

+0

也許你可能會提供這個評論/建議,但不是問題的答案。 Becoz,我們不知道問題出在哪裏。 @Dhruv Patel請分享堆棧跟蹤來解決您的問題。 – Hariharan

0

檢查您data字符串(或者是地圖嗎?)不爲空,真正包含JSON串。 然後檢查您的findViewById是否返回了正確的TextView或null。

0

根據你的代碼,我只能想到「歡迎」對象爲空。如果您確實傳遞了您提供的響應,則「json」對象不能爲null。雖然登錄==「1」是錯誤的,那不會拋出NullPointerException。所以唯一可能的是「歡迎」對象爲空,或者異常可能存在於您尚未粘貼的代碼片段中。