androidjson服务器端
A. android客户端与服务器发之间的json数据解析
JSONArray jsonArray = new JSONArray(string); //string为返回的字符串
//数据直接为一个数组形式,所以可以直接 用android提供的框架JSONArray读取JSON数据,转换成Array
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject item = jsonArray.getJSONObject(i);
//每条记录又由几个Object对象组成
iitem.getInt("index");
// 获取对象对应的值
item.getString("address");
}
B. android客户端怎么用 json给服务端传数据
android如果是通过http post发送数据的话,可以采用以下方式接收数据: 通过request.getParameter(paraName); 获取参数。 request对象就是表示请求对象,getParameter就是获取参数,传递的参数就是参数名。 例如请求 localhost:8080/web?data=abcd 则服务器取值, request.getParameter("data"); 。
C. 在android网络编程里,客户端与服务器端采用json方式传递数据。服务器端是怎么接受和返回数据呢
int formDataLength = request.getContentLength();
// 取得ServletInputStream输入流对象
DataInputStream dataStream = new DataInputStream(
request.getInputStream());
byte body[] = new byte[formDataLength];
int totalBytes = 0;
while (totalBytes < formDataLength) {
int bytes = dataStream.read(body, totalBytes, formDataLength);
totalBytes += bytes;
}
String json = new String(body, "ISO-8859-1");
System.out.println(json);
D. android用volley怎么给服务器发送json
1.下载官网的android SDK(本人用的是eclipse)
2.新建一个android项目:
File->new->andriod Application project
7、下面就是具体的使用post和get请求的代码:
A:发送get请求如下:
package com.example.xiaoyuantong;
import java.util.HashMap;
import java.util.Iterator;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
/**
* Demo
*/
public class MainActivity extends Activity {
private RequestQueue requestQueue ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
TextView textView = (TextView)findViewById(R.id.textView);
requestQueue = Volley.newRequestQueue(this);
getJson();
textView.setText("hello");
}
private void getJson(){
String url = "http://192.168.20.1:8080/xiaoyuantong/userAction!register.action?pwd='测试'";
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(
Request.Method.GET, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
//这里可以打印出接受到返回的json
Log.e("bbb", response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
// System.out.println("sorry,Error");
Log.e("aaa", arg0.toString());
}
});
requestQueue.add(jsonObjectRequest);
}
}
B:发送post请求如下:
package com.example.xiaoyuantong;
import java.util.HashMap;
import java.util.Map;
import org.json.JSONException;
import org.json.JSONObject;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.widget.TextView;
public class PostActivity extends Activity {
private RequestQueue requestQueue ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_post);
init();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.post, menu);
return true;
}
private void init() {
TextView textView = (TextView)findViewById(R.id.postView);
requestQueue = Volley.newRequestQueue(this);
getJson();
textView.setText("hellopost");
}
private void getJson(){
String url = "http://192.168.20.1:8080/xiaoyuantong/userAction!reg.action";
JsonObjectRequest jsonObjectRequest ;
JSONObject jsonObject=new JSONObject() ;
try {
jsonObject.put("name", "张三");
jsonObject.put("sex", "女");
} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//打印前台向后台要提交的post数据
Log.e("post",jsonObject.toString());
//发送post请求
try{
jsonObjectRequest = new JsonObjectRequest(
Request.Method.POST, url, jsonObject,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
//打印请求后获取的json数据
Log.e("bbb", response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
// System.out.println("sorry,Error");
Log.e("aaa", arg0.toString());
}
});
requestQueue.add(jsonObjectRequest);
} catch (Exception e) {
e.printStackTrace();
System.out.println(e + "");
}
requestQueue.start();
}
}
8、在android的logcat里面能查看到打印的请求
(红色的显示的是我在后台请求到数据)
有时候logcat显示不出数据,可能是消息被过滤了,可以在左边点击“减号”删除过滤
在server端,也就是在myeclipse的建立的另一个后台工程里面能获取到请求:
9、后续会补充json数据的解析部分,以及过度到移动云的部分,上面只是c/s模式下的一个简单的基于http的请求应答例子。
E. 服务器端怎么接收Android客户端传过来的Json数据
android如果是通过http post发送数据的话,可以采用以下方式接收数据:
通过request.getParameter(paraName); 获取参数。
request对象就是表示请求对象,getParameter就是获取参数,传递的参数就是参数名。
例如请求 localhost:8080/web?data=abcd 则服务器取值,request.getParameter("data"); 。
F. Android客户端识别服务器的json数据有乱码
使用json-lib来进行解析,需要引入第三方的包。
尽量不要直接通信JSON,收发字符串之后各自解析。另外客户端服务端的字符编码要统一,一般UTF8。
G. 请问android怎样通过json数据从服务器获取图片
直接获取是不行的,要有一个文件服务器,对于文件服务器会为每个图片生成一个资源路径,然后json数据中返回的就是这个资源路径,最后用URL类就可以通过这个资源路径把图片download下来
H. php服务器端怎样接收来自android的json数据.android以post方式发送
php有一个函数叫json_encode,数据从服务器中拿过来之后,我是直接添加进array里面来进行操作的,android认的JSONObject的格式是两层大括号包着的array。 你将数据从数据库中拿出来之后,组成associative array,用你的例子创建一个空array先~~ $arr = array(); $arr['test'] = 'json'; $arr['mode'] = 'single'; 这样加进一个叫$arr的数组(中文是叫这个的吧。。。orz。。。。)之后,你用另一个array再把它装进去,操作是 $arr2 = array('view' => $arr); 这样我们要的那个主要的包含数据的数组$arr就有了一个名字,于是android解析的时候就可以区别了,php输出的时候,要这样输出: echo json_encode($arr2); 于是就ok~~~会变成一个可以解析的JSONObject哦~~~~ 以上全部是我个人研究经验。。。。也许有更简单的方法,求高手指教~~~不过我们整个一个系统里面凡是server和android软件交互的数据我都是这么发过去的,表示JSONArray是更麻烦的东西,JSONObject神马的,还是很简单的哈~~~~~自己研究研究就出来了~~~
I. android 在服务器端生成json格式数据,在客户端怎么解析
1、生成JSON格式数据,有对应的后台类处理,如果你是做Android开发,后台提供获取数据的接口
2、客户端解决:
JSONArrayjsonArr=newJSONArray(json);
for(inti=0;i<jsonArr.length();i++){
JSONObjectjsonObj=jsonArr.getJSONObject(i);
booleanisChild=jsonObj.has("childrenNodes");
AreaBeanbean=newAreaBean(jsonObj.getString("id"),
jsonObj.getString("parentId"),
jsonObj.getString("name"));
mList.add(bean);
if(isChild){
mchildNodesList.add(jsonObj.getString("childrenNodes"));
}else{
mchildNodesList.add(null);
}
}
J. android应用怎么样在服务器端解析从客户端发送过来的json数据
首先是服务器要取到数据,然后就是就在服务端解析json啊。。解析都是一样的撒。。可以自己写方法。也可以用别人的jar包。。