android中对json解析(上传数据以及解析返回值)

标题一:利用json上传数据:

两个类jsonobjct和jsonarray:
1.jsonobject:jsonobject是提供的一个类专门去放值,形式就是一个键值加上一个参数。2.jsonarray:jsonarray提供一个相当于存放单个jsonobject的对象。3.在jison中每个{“key”,"value"}是一个对象,可以用一个jsonobject存放。例子如下:
现在有三个数据需要提交:[{"name":"Tom"},{"age":"21"},{"sex":"men"}]
   			    JSONArray arry=new JSONArray();//声明一个jsonarray用来存放jsonobject中的每一个对象
    			    JSONObject [] jsonObjects=new JSONObject[3];//因为需要存放三个对象分别是name,age,sex
    			    for(int i=0;i<3;i++)
    			    {
    			          JSONObject jo=new JSONObject();//new一个json
    			          jsonObjects[i]=jo;//将三个new出来的jsonobject存放在jsonobject数组中
    			    }
    			  
    			    try {
    			    	jsonObjects[0].put("name",Tom);
    			    	
    				jsonObjects[1].put("age",21);
    				
    				jsonObjects[2].put(sex,men);		 					
    			
    				} catch (NumberFormatException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				} catch (JSONException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    			    for(int i=0;i<3;i++)//将jsonobject转换成jsonarray
    			    {
    			    	arry.put(jsonObjects[i]);
    			    	
    			    }
    			   			   				
    				Post(arry.toString());	//将jsonarray转换成string利用post提交数据		
    			} 		
post提交数据:
 public int Post(final String message)
     	{
     		try {
     		url=new URL(urlpath);//url地址
     		} catch (MalformedURLException e) {
     			// TODO Auto-generated catch block
     			Toast.makeText(getApplicationContext(), "服务器繁忙", 0).show();
     			e.printStackTrace();
     			
     		}
     		
     		new Thread(new Runnable() {
     			public void run() {
     				
     				HttpURLConnection conn;
     				try {
     					conn = (HttpURLConnection) url.openConnection();
     					conn.setConnectTimeout(5000);
     					conn.setDoOutput(true);
     					conn.setRequestMethod("POST");
     					conn.setRequestProperty("ser-Agent", "Fiddler");
     					conn.setRequestProperty("Content-Type", "项目名称");
     					OutputStream os = conn.getOutputStream();
     					os.write(message.getBytes());//转换成字节流写入
     					os.close();
     					int code = conn.getResponseCode();
     					if(code==200)
     					{   						    					
     						InputStream is = conn.getInputStream();
     						final String json = NetUtils.readString(is);//NetUtils获得输入流
     						JSONObject jObject=new JSONObject(json);//new一个jsonobject对象来获取返回的值     					          	final int fcode=jObject.getInt("xxx");//获取返回值     				     					     						
     						runOnUiThread( new Runnable() {
     							public void run() {
     								String ecode = null;
     								switch (fcode) {
     								case 0:
     									ecode="x";
     									break;
     		                      
     								case 1:
     									ecode="x";
     									 									
     								        break;
     								case 2:
     									ecode="x";
     									break;...................//不同情况写出不同操作
     								}
     								Toast.makeText(getApplicationContext(), ecode, 0).show();
     							}
     						});
     						
     					}
     					else
     					{
     						runOnUiThread(new Runnable() {
     							public void run() {
     								Toast.makeText(getApplicationContext(), "上传服务器失败", 0).show();
     							}
     						});
     					}
     				} catch (IOException e) {
     					// TODO Auto-generated catch block
     					runOnUiThread(new Runnable() {
     						public void run() {
     							Toast.makeText(getApplicationContext(), "IO输入输出流失败", 0).show();
     						}
     					});
     					e.printStackTrace();
     				} catch (JSONException e) {
     					// TODO Auto-generated catch block
     					runOnUiThread(new Runnable() {
     						public void run() {
     							Toast.makeText(getApplicationContext(), "JSON对象失败", 0).show();
     						}
     					});
     					e.printStackTrace();
     				}
     				
     				
     			}
     		}).start();
     		return -1;
     	}

标题二:json解析数据:

1.解析json利用的类是jsontoken:


		JSONTokener jsonTokener=new JSONTokener(json);
		JSONObject json;
			try {
				json = (JSONObject) jsonTokener.nextValue();//获取当前json
				values=jo.getString("value1");
				.............
				
			} catch (JSONException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		
		return values;




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值