2015-05-09 60 views
0

我正在从一个PHP MysQl服务器收集某些信息的Android应用程序,但我面临JSON解析器的问题,有时它有效它不起作用,它给了我这些错误:JSON解析器无法转换我的字符串

E/JSON Parser﹕ Error parsing data org.json.JSONException: Value Failed of type java.lang.String cannot be converted to JSONObject 
    Caused by: java.lang.NullPointerException 

和代码这就是产生错误:

try { 
       // Building Parameters 
       List<NameValuePair> params = new ArrayList<NameValuePair>(); 
       params.add(new BasicNameValuePair("username", username)); 
       params.add(new BasicNameValuePair("password", password)); 
       params.add(new BasicNameValuePair("fname", fname)); 
       params.add(new BasicNameValuePair("lname", lname)); 
       params.add(new BasicNameValuePair("email", email)); 
       params.add(new BasicNameValuePair("city", city)); 
       params.add(new BasicNameValuePair("nrc", nrc)); 
       params.add(new BasicNameValuePair("dob", dob)); 
       params.add(new BasicNameValuePair("cell", cell)); 




       Log.d("username", username); 
       Log.d("password", password); 
       Log.d("fname", fname); 
       Log.d("lname",lname); 
       Log.d("email",email); 
       Log.d("city",city); 
       Log.d("nrc",nrc); 
       Log.d("dob",dob); 
       Log.d("cell",cell); 



       Log.d("request!", "starting"); 

       //Posting user data to script 
       JSONObject json = jsonParser.makeHttpRequest(
         REGISTER_URL, "POST", params); 

       // full json response 
       Log.d("Registering attempt", json.toString()); 


       // json success element 
       success = json.getInt(TAG_SUCCESS); 
       if (success == 1) { 
        Log.d("User Profile Created!", json.toString()); 

的NullException正在由线路原因引起:

Log.d("Registering attempt", json.toString()); 
+0

尝试将json头添加到您要调用的url,并交叉检查有效的json是否正在返回。点击这里查看..http://jsonviewer.stack.hu/ –

+0

我不明白你的意思,我是新来的Json请你自己解释更多 – Chrome

回答

0

我认为这里的问题是,你没有得到适当的JSON字符串作为响应。确保jsonParser.makeHttpRequest(REGISTER_URL, "POST", params);行正在返回正确的jSON字符串。在那里放置一个断点并尝试进行调试,以检查您是否获得了正确的JSON响应。希望能帮助到你。

+0

让我试试看,谢谢。 – Chrome

+0

根据logCat一切工作正常,我管理打印json.toString的值,但是当我删除断点,它给了我一个空指针 – Chrome