原問題來自於csdn問答頻道,更多解決方案見:
問題描述:
我在開發乙個程式,在 webpage 上使用jquery。
$.post(url, , function(result){});
根據引數結構,paramstring 是乙個 json字串,如:
現在我想在android中執行,再在頁面上新增兩個textview 來輸入使用者名稱和密碼。也有乙個註冊按鈕。按鈕監聽程式:
edittext et1 = (edittext)findviewbyid(r.id.username);
string user = et1.gettext().tostring();
edittext et2 = (edittext)findviewbyid(r.id.pass);
string password = et2.gettext().tostring();
// the password should upload after md5 encryption. this is encryption method. the result is the same with js encryption.
string password_md5 = tomd5(password.getbytes());
log.d(tag, user+"-"+password+"-"+password_md5);
try catch (exception e)
上面的**返回資料顯示登入錯誤,我覺得是因為 json 結構的問題。in $.post()
方法是乙個map。我改了好幾次還是錯誤的。
什麼問題呢?
解決方案:
你應該分別傳遞每個引數,不需要乙個 json 結構。 jquery 使用的 json 結構只是 $.post() 方法中乙個可變數目的引數。
把你**中的這部分:
params.put("action", "get");
params.put("result", "user");
params.put("category", "base");
params.put("username", user);
params.put("password", password_md5);
listsenddata = new arraylist();
senddata.add(new basicnamevaluepair("param", params.tostring()));
改為:
listsenddata = new arraylist();
senddata.add(new basicnamevaluepair("action", "get"));
senddata.add(new basicnamevaluepair("result", "user"));
senddata.add(new basicnamevaluepair("category", "base"));
senddata.add(new basicnamevaluepair("username", user));
senddata.add(new basicnamevaluepair("password", password_md5));
用senddata list 取代 json 物件。
Android資料傳遞中json的生成和解析
使用android整合的json包完全可以滿足需要。1.生成json資料 基本map物件 map basemap new hashmap basemap.put string string basemap.put int 2 basemap.put boolean true json陣列 jsona...
android中的json解析
json和xml的解析有一些類似,將json的內容讀入字串之後 在進行解析 json資料是 包裹的是jsonobject,物件裡面是鍵值對,直接呼叫getstring 等等就可以 包裹的是jsonarray private void parsejsonwithjsonobject string js...
android中json檔案的寫法
因為再android中有乙個context.getresources openrawresource resid 所以我們可以寫乙個json檔案放在raw中 然後inputstream in mcontext.getresources openrawresource resid 再然後 將buffe...