android上傳json
Ⅰ android客戶端怎麼用 json給服務端傳數據
android如果是通過http post發送數據的話,可以採用以下方式接收數據: 通過request.getParameter(paraName); 獲取參數。 request對象就是表示請求對象,getParameter就是獲取參數,傳遞的參數就是參數名。 例如請求 localhost:8080/web?data=abcd 則伺服器取值, request.getParameter("data"); 。
Ⅱ android 如何用json傳遞文件
先發現json可以直接傳遞個Object對象。開始時打算將文件讀取成byte[]數組,然後再將byte轉換為object來傳遞。通過如下方法[*]public Object toObject (byte[] bytes) { [*] Object obj = null; [*] try { [*] ByteArrayInputStream bis = new ByteArrayInputStream (bytes); [*] ObjectInputStream ois = new ObjectInputStream (bis); [*] obj = ois.readObject(); [*] ois.close(); [*] bis.close(); [*] } catch (IOException ex) { [*] ex.printStackTrace(); [*] } catch (ClassNotFoundException ex) { [*] ex.printStackTrace(); [*] } [*] return obj; [*] } 但測試發現調用這個函數時發生錯誤java.io.StreamCorruptedException,不知道為什麼。而後又想能不能直接傳遞個File對象,例如:File file = new File(xxx);jsObj.put("key", file);File file2 = jsObj.get("key");請問這樣這樣能不能行通?因為發現很多跨進程傳遞對象數據都必須要求對象是序列化的。所以此處很疑惑通過json方法是否也需要這個File對象要序列化什麼的。
Ⅲ android js 交互 能傳json對象嗎
最近幾個項目的測試結果,Android無法主動通過調用
webview.loadUrl("javascript:"+callbackFunction+"('"+data+"')"); 這種方式將jsonobject類型的data傳給js,因為js那邊得到就是一個string的對象。
與此同時,js主動調用android的對象方式,android也無法返回給js一個jsonobject,需要js做一下轉換,例如:
Android 代碼:
[java] view plainprint?
WebView mWebView = (WebView) this.findViewById(R.id.webview);
WebSettings settings = mWebView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setPluginsEnabled(true);
settings.setAllowFileAccess(true);
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);//不加上,會顯示白邊
String url="file:///android_asset/t.html"; //js代碼卸載t.html里
NavigationInstance navigation =new NavigationInstance(this);
mWebView.addJavascriptInterface(navigation, "Navigation");
NavigationInstance里的代碼:
[java] view plainprint?
@Override
public JSONObject GetManeuverInfo() {
try{
JSONObject test=new JSONObject();
test.put("maomao", "value");
return test;
//return new JSONObject(bean.ManeuverInfo);
}catch(Exception e){
Log.e(TAG, "",e);
}
return null;
}
t.html里的代碼:
[javascript] view plainprint?
function testAPI(el){
console.log("---------testAPI---------");
eval("var obj = "+Navigation.GetManeuverInfo());
alert('typeof:'+typeof(obj));
alert('maomao:'+obj.maomao);
alert('obj:'+obj);
}
如果直接寫成 Navigation.GetManeuverInfo.maomao是會提示undefined,因為js那邊只得到了一個string對象而已,它不知道maomao是個key。
通過eval將其轉化成表達式就可以調用obj.maomao得到value。
在此ps一下ios,貌似人家支持webview很好,js可以直接獲取到json對象.
Ⅳ Android 怎麼把json數據傳遞到下個頁面
可以通過intent將其序列化傳遞
1,可以傳遞string,下個頁面啟動後可以再通過string創建json對象
2,如果只有少數幾個key-value,可以直接在intent中分別傳遞,可以免去重構json對象的工作。
Ⅳ Android利用Json來進行網路數據傳輸
有點暈暈的,如果你是傳多個對象[{id:1,name:"tom",age:"20"},{id:2,name:"tom",age:"20"}]
怎麼搞成伺服器請求客戶端了??不是客戶端請求伺服器嗎?
一般JSON對應json都是通過id來對應的,我就是這樣對應的
Ⅵ 怎麼使用android-async-http給後台上傳json數據
一、在JavaEE項目中搭建環境
1. 導入相關jar包
2. 搭建相關的包和類
3.類中的方法簡單實現
User:
聲明以下屬性,並實現無參構造器和有參構造器,以及各自的get和set方法
UserDao:
UserDaoImpl:
JsonServlet:
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// 來自於資料庫
UserDao Impl = new UserDaoImpl();
List entities = Impl.findAll();
// 把List集合轉換成一個json的數據格式
JSONArray jsonArray = JSONArray.fromObject(entities);
response.setContentType("application/json");// 響應類型 json的數據
response.getWriter().write(jsonArray.toString());
response.getWriter().close();
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
附上出處鏈接:http://www.2cto.com/kf/201405/304410.html
Ⅶ 請問android 如何用json傳遞文件
先發現json可以直接傳遞個Object對象。開始時打算將文件讀取成byte[]數組,然後再將byte轉換為object來傳遞。通過如下方法[*]public Object toObject (byte[] bytes) { [*] Object obj = null; [*] try { [*] ByteArrayInputStream bis = new ByteArrayInputStream (bytes); [*] ObjectInputStream ois = new ObjectInputStream (bis); [*] obj = ois.readObject(); [*] ois.close(); [*] bis.close(); [*] } catch (IOException ex) { [*] ex.printStackTrace(); [*] } catch (ClassNotFoundException ex) { [*] ex.printStackTrace(); [*] } [*] return obj; [*] } 但測試發現調用這個函數時發生錯誤java.io.StreamCorruptedException,不知道為什麼。而後又想能不能直接傳遞個File對象,例如:File file = new File(xxx);jsObj.put("key", file);File file2 = jsObj.get("key");請問這樣這樣能不能行通?因為發現很多跨進程傳遞對象數據都必須要求對象是序列化的。所以此處很疑惑通過json方法是否也需要這個File對象要序列化什麼的。請各位大俠給小弟弟講解下這概念原理,說明這里為什麼能行,為什麼不行。謝謝。
Ⅷ Android如何傳輸參數給一個url介面 參數是json格式
一般傳輸參數使用json類型或者map類型都是使用post方法。
使用json數據格式發送信息向伺服器端:
HttpClient httpClient = new DefaultHttpClient();
try {
HttpPost httpPost = new HttpPost(BASIC_URL + url);
List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>();
JSONObject jsonObject = new JSONObject();
JSONObject jsonObject2 = new JSONObject();
jsonObject.put("uemail", userbean.getEmail());
jsonObject.put("password", userbean.getPassword());
jsonObject2.put("userbean", jsonObject);
nameValuePair.add(new BasicNameValuePair("jsonString", jsonObject
.toString()));
Log.i("lifeweeker", jsonObject2.toString());
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
}
Ⅸ android volley stringrequest post中的getparams怎麼把json數據提交上去
1.客戶端以普通的post方式進行提交,服務端返回字元串
RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
StringRequest stringRequest = new StringRequest(Request.Method.POST,httpurl,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, "response -> " + response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, error.getMessage(), error);
}
}) {
@Override
protected Map<String, String> getParams() {
//在這里設置需要post的參數
Map<String, String> map = new HashMap<String, String>();
map.put("name1", "value1");
map.put("name2", "value2");
return params;
}
};
requestQueue.add(stringRequest);
2.客戶端以json串的post請求方式進行提交,服務端返回json串
RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
Map<String, String> map = new HashMap<String, String>();
map.put("name1", "value1");
map.put("name2", "value2");
JSONObject jsonObject = new JSONObject(params);
JsonRequest<JSONObject> jsonRequest = new JsonObjectRequest(Method.POST,httpurl, jsonObject,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(TAG, "response -> " + response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, error.getMessage(), error);
}
})
{
//注意此處override的getParams()方法,在此處設置post需要提交的參數根本不起作用
//必須象上面那樣,構成JSONObject當做實參傳入JsonObjectRequest對象里
//所以這個方法在此處是不需要的
// @Override
// protected Map<String, String> getParams() {
// Map<String, String> map = new HashMap<String, String>();
// map.put("name1", "value1");
// map.put("name2", "value2");
// return params;
// }
Ⅹ Android端用json批量上傳多圖片,求服務端代碼,如何解析並保存到伺服器。謝謝各位大神
你先要看Android 端怎麼給你傳的啊
json是本質是怎麼? 字元串啊
傳圖可以通過以下方式(最終都是以流的形式傳遞,但是格式不一樣):
1、流 移動端將圖片轉為位元組流 傳遞, 你直接就獲取流 然後轉圖片
2、字元串 移動端將圖片轉為一個字元串(很長),然後傳遞,你後台就獲取字元串
3、壓縮文件 文件傳輸(也是流),後台獲取流轉文件
你說json的話,那他是將圖轉為字元串?
或者他其實是用網路框架提供的傳遞文件的方法直接傳遞的圖?
再或者他是寫的文件讀寫流?
然後你就網路你框架(Spring MVC?)怎麼獲取