当前位置: 代码迷 >> Android >> 请教关于 json ,put 数据的有关问题
  详细解决方案

请教关于 json ,put 数据的有关问题

热度:92   发布时间:2016-04-28 01:53:37.0
请问关于 json ,put 数据的问题
请问   obj.put("count", count);   当要传如数组的时候,应该怎么写呢?
麻烦会的朋友回复下,谢谢啦

public class AboutActivity extends Activity {
    。。。。。
    private int count[] = new int[3];
    count[0] =1;
    count  [1]=2;
    count  [2]=3;

     httpapi.update (string, count);
。。。
}


public class HttpApi { 
。。。。。
 public boolean update(String access_token, int  count[] ) {
       try {
String target = "http://nihao.ywen.com/api.php";
HttpClient httpclient = new DefaultHttpClient();
HttpPost request = new HttpPost(target );
JSONObject obj= new JSONObject();
obj.put("action", "update");
obj.put("access_token", access_token);
if( count != null){

obj.put("count", count);   //  程序要调用 连接服务器接口,但是count 是一个数组,但是就这样 count 传进去的只是数组的地址,而是要当打印这个的时候 Log.d(TAG,": obj.toString()" +obj.toString());  会显示 "count":["1","2","3"]

                        }

request.setEntity(new StringEntity(obj.toString(),"utf-8")); 
//obj.toString()
Log.d(TAG,": obj.toString()" +obj.toString());

HttpResponse response;
response = httpclient.execute(request);
              int code = response.getStatusLine().getStatusCode();

                if( code==200) {
             String rev =EntityUtils.toString(response.getEntity()); //id
             JSONObject obj1= new JSONObject(rev);
             get_errcode = obj1.getInt("errcode");
     get_errmsg = obj1.getString("errmsg");
     Log.d(TAG,"yong: register():get_errcode="+get_errcode);
     Log.d(TAG,"yong: register():get_errmsg="+get_errmsg);
            }
}

}
------解决思路----------------------
for(int i = 0 ; i < count.length ; i ++){

         obj.put("count"+i, count[i]); 

}
------解决思路----------------------
JSONArray 试过了么?
------解决思路----------------------
try {
JSONObject object  = new JSONObject(JSON);
String action = (String) object.get("action"); 
int count1 = (Integer) object.get("count1");
int count12 = (Integer) object.get("count12");
String access_token = (String) object.get("access_token");
Log.e("JSON", action+"---"+count1+"---"+count12+"---"+access_token);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
------解决思路----------------------
转成接送对象在传过去
JSONArray jsonArray = JSONArray.fromObject(count);  

------解决思路----------------------
引用:
Quote: 引用:

转成接送对象在传过去
JSONArray jsonArray = JSONArray.fromObject(count);  

@u012301841   谢谢您的回复
 count[]  这个是 个数字参数,按照上面所写后,会出现错误提示的:
The method fromobject  [int]    is  underfined for the type  jsonarray

JSONArray jsonArray = JSONArray.fromObject(count);  
request.setEntity(new StringEntity(obj.toString(),"utf-8"));


你没有导入gson的官方jar包吧,提示没有这个方法.
------解决思路----------------------
引用:
Quote: 引用:

try {
JSONObject object  = new JSONObject(JSON);
String action = (String) object.get("action"); 
int count1 = (Integer) object.get("count1");
int count12 = (Integer) object.get("count12");
String access_token = (String) object.get("access_token");
Log.e("JSON", action+"---"+count1+"---"+count12+"---"+access_token);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


@ jiang920627  谢谢您的回复,但是你回复的不太对哦
我的意思是  
 
obj.put("count", count);     当 count 为数组的时候,应该怎么写呢



try {
JSONObject jsonObject = new JSONObject(json);
JSONArray jsonArray = jsonObject.getJSONArray("count");
for (int i = 0; i < jsonArray.length(); i++) {
Log.e("json", jsonArray.get(i)+"");
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
------解决思路----------------------
引用:
Quote: 引用:

try {
JSONObject object  = new JSONObject(JSON);
String action = (String) object.get("action"); 
int count1 = (Integer) object.get("count1");
int count12 = (Integer) object.get("count12");
String access_token = (String) object.get("access_token");
Log.e("JSON", action+"---"+count1+"---"+count12+"---"+access_token);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


@ jiang920627  谢谢您的回复,但是你回复的不太对哦
我的意思是  
 
obj.put("count", count);     当 count 为数组的时候,应该怎么写呢



你是解析json ? 还是要生成json ?
------解决思路----------------------
可以试试 
Gson
简单而且效率更高
  相关解决方案