Android 中傳遞 json 的問題

2021-06-14 06:55:43 字數 1774 閱讀 2892

原問題來自於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...