本文将介绍如何通过改造库后一串json格式的数据,首先发布的json数据格式如下:
{ “Id”:“字符串”, “的DeviceId”:“字符串”, “名称”:“字符串”, “SumDistance”: 0, “RouteNo”:“字符串”, “SumPoints”: 0, “SetupTime”:“2016 - 06 - 10 t13:11:00.766z”, “UsedTime”: 0, “点”:( { “Id”:“字符串”, “RouteNo”:“字符串”, “名称”:“字符串”, “经度”:“字符串”, “人肉搜索”:“字符串”, “高度”:0, “距离”:0, “偏航”:0, “节”:0, “速度”:0, “Usedtime”: 0 } ] }
通过安装安卓工作室gsonformat插件,根据上面的json格式自动生成一个Bean类,本文命名为FlyRouteBean,
包com.example.administrator.retrofitex; 进口并不知道; 进口android.os.Parcel; 进口android.os.Parcelable;/* * *由管理员创建,距离=" + +距离 ”,偏航=" +偏航+ ”,距=" + + ”,速度=" + +速度 ”,Usedtime=" + Usedtime + '} '; } @Override 公共空间writeToParcel(包裹dest, int旗帜){//TODO自动生成方法存根 dest.writeString (Id); dest.writeString (RouteNo); dest.writeString(名称); dest.writeString(经度); dest.writeString(纬度); dest.writeDouble(高度); dest.writeDouble(距离); dest.writeDouble(偏航); dest.writeDouble(沥青); dest.writeDouble(速度); dest.writeDouble (Usedtime); } 公共静态最终Creator创造者=new Creator () { @Override 公共PointsBean createFromParcel(包裹){//TODO自动生成方法存根 PointsBean PointsBean=new PointsBean (); pointsBean.setId (source.readString ()); pointsBean.setRouteNo (source.readString ()); pointsBean.setName (source.readString ()); pointsBean.setLongitude (source.readString ()); pointsBean.setLatitude (source.readString ()); pointsBean.setHeight (source.readInt ()); pointsBean.setDistance (source.readInt ()); pointsBean.setYaw (source.readInt ()); pointsBean.setPitch (source.readInt ()); pointsBean.setSpeed (source.readInt ()); pointsBean.setUsedtime (source.readInt ()); 返回pointsBean; } @Override 公共PointsBean [] newArray (int大小){//TODO自动生成方法存根 返回新PointsBean(大小); } }; @Override 公共int describeContents () {//TODO自动生成方法存根 返回0; } } @Override 公共字符串toString () { 返回“FlyRouteBean {”+ " Id=" + Id \“+ +” ”,的DeviceId=" +的DeviceId \“+ +” “Name=" +名字+ \” ”,SumDistance=" + SumDistance + ”,RouteNo=" + RouteNo \“+ +” ”,SumPoints=" + SumPoints + ”,SetupTime=" + SetupTime \“+ +” ”,UsedTime=" + UsedTime + ”,点=" +点+ '} '; } } >之前 然后就来建立接口了,其内容如下:
公共接口PostRoute { @Headers ({- type: application/json, application/json接受:“})//需要添加头 @POST (“api/FlyRoute/添加”) CallpostFlyRoute (@Body RequestBody路线);//传入的参数为RequestBody } >之前 接下来就是提交数据的了:
FlyRouteBean FlyRouteBean=new FlyRouteBean (); flyRouteBean=initdata (flyRouteBean);//根据Bean类初始化一个需要提交的数据类 Gson Gson=new Gson (); 字符串路线=gson.toJson (flyRouteBean);//通过Gson将Bean转化为Json字符串形式翻新改造=new Retrofit.Builder () .baseUrl (URL) .addConverterFactory (GsonConverterFactory.create ()) .build (); PostRoute PostRoute=retrofit.create (PostRoute.class); RequestBody身体=RequestBody.create (okhttp3.MediaType.parse (“application/json;charset=utf - 8”),路线); Call电话=postRoute.postFlyRoute(身体); 调用。排队(新的Callback () { @Override 公共空间> (HttpPost) 公共IHttpActionResult信息(学生斯图,bool IsGay) { 返回Ok (stu.Name); } >之前 客户端:
Android如何通过改造提交Json格式数据