我想要實現的是我正在工作的應用程序的註冊腳本,一旦用戶單擊註冊它更新使用php的外部mysql數據庫(工作正常),然後也存儲到設備上的本地sqllite數據庫中。我得到的錯誤是這樣的:SQLite,JSON,爲Android程序錯誤
04-01 11:09:30.553 8592-8667/com.zelphe.zelpheapp E/JSON﹕ {"tag":"register","success":1,"error":0,"user":{"fname":"dave","lname":"test","email":"[email protected]"}}
04-01 11:09:30.613 8592-8592/com.zelphe.zelpheapp W/System.err﹕ org.json.JSONException: No value for dave
我在這有點損失這意味着/我必須解決?
dave的值不應該是dave的值嗎?據我可以看到註冊進展順利?
編輯 - 代碼添加
好吧,這是當它卡住運行活動
if (Integer.parseInt(res) == 1) {
pDialog.setMessage("Loading User Space");
pDialog.setTitle("Getting Data");
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
JSONObject json_user = json.getJSONObject("user");
/**
* Clear all previous data in SQlite database.
**/
UserFunctions logout = new UserFunctions();
logout.logoutUser(getApplicationContext());
db.addUser(json_user.getString(userFirstName), json_user.getString(userLastName), json_user.getString(userEmail));
/**
*If JSON array details are stored in SQlite it launches the User Panel.
**/
Intent upanel = new Intent(getApplicationContext(), MainActivity.class);
upanel.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
pDialog.dismiss();
startActivity(upanel);
/**
* Close Login Screen
**/
finish();
註銷用戶:
public boolean logoutUser(Context context){
DatabaseHandler db = new DatabaseHandler(context);
db.resetTables();
return true;
}
的adduser:
public void addUser(String userFirstName, String userLastName, String userEmail) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_FIRSTNAME, userFirstName); // FirstName
values.put(KEY_LASTNAME, userLastName); // LastName
values.put(KEY_EMAIL, userEmail); // Email
// Inserting Row
db.insert(TABLE_LOGIN, null, values);
db.close(); // Closing database connection
}
後您JSON解析代碼,可能是你在其中「fname」改變標籤名稱: 「戴夫」。 – fida1989
不要只發布logcat輸出。發佈導致錯誤的代碼。 – Squonk
邏輯代碼更新,瞭解您的代碼中存在什麼問題 – Amitsharma