Json 网络上传数据和读取数据(简)

Json 网络上传数据和读取数据(简)

总结:做网络上传数据和读取数据时需要一个完整的结构(环境设置,代理设置,服务器接口),

代码:

 

上传:

 

1:初始化:

Common_Json_Lomowall mBase_Json_Data = new Common_Json_Lomowall(this);

2:初始化上传的数据(6个)

    String name = save_name.getText().toString();

    String id = number + ":";

    String caption= save_caption.getText().toString();

    String pitch =String.valueOf(mSeekBar1.getProgress());

    String rate =String.valueOf(mSeekBar2.getProgress());

    Stringtempo =String.valueOf(mSeekBar3.getProgress());

3:启动上传

if (mBase_Json_Data != null) {

mBase_Json_Data.LoadData_IsAudioConfigDataOK(name,pitch,rate, tempo, caption,status);//此处启动逻辑层

    }

 

4:逻辑层结构

/**IsAudioConfigDataOK**/

    public boolean LoadData_IsAudioConfigDataOK(Stringname,String pitch,String rate,String tempo,String caption,

           String status)

    {

       boolean bState = false;

       try

       {

           Base_Json_Data cjl = new Base_Json_Data(context);

           //Lookup SystemWide Server Nodes

           if(cjl.IsLookupServerOK())//判断数据是否存在

           {

              //IsAudioConfigDataOK

              if(cjl.IsAudioConfigDataOK(name,pitch,rate,tempo,caption,status))//启动数据层判断上传是否成功

              {

                  bState = true;

              }

           }//if(IsLookupServerOK())

           nErrorCode = cjl.nErrorCode;//得到网络错误码

       }

       catch (IOException e)

       {

           e.printStackTrace();

       }

       return bState;

    }

 

 

5:数据层结构

//Audio Config Data

    public boolean IsAudioConfigDataOK(Stringname,String pitch,String rate,String tempo,String caption,

           String status) throws IOException

    {

       boolean bState = false;

       String strURL = "http://192.168.100.18:10068/mkcmsreport/media/md_audio/request";

       List<NameValuePair> params = new ArrayList<NameValuePair>();

       JSONObject jsonobject = new JSONObject();

       try

       {

           jsonobject.put("id","118");

           jsonobject.put("method","editAudio");

           jsonobject.put("auth",auth);

           jsonobject.put("client_info",client_info);

           jsonobject.put("callback","");

 

           //注意此处的层析结构,对应6接口的结构

           JSONObject paramsArray = new JSONObject();

           JSONObject paramsobject = new JSONObject();

           paramsobject.put("name",name);

           paramsobject.put("pitch",pitch);

           paramsobject.put("rate",rate);

           paramsobject.put("tempo",tempo);

           paramsobject.put("caption",caption);

           paramsobject.put("status",status);

           paramsArray.put("audio_param",paramsobject);

           jsonobject.put("params",paramsArray);

       }

       catch (JSONException e)

       {

           e.printStackTrace();

       }

 

        params.add(newBasicNameValuePair("data", jsonobject.toString()));

       Base_Json json = new Base_Json();

       String strReturn = json.UploadUserMessage(strURL, params);

       if(!strReturn.equals(""))

       {

           dataList_GC = Common_Functions.getJsonObjectToList(strReturn);

           String strTmp = dataList_GC.get(0).get("rst").toString();

           if(strTmp.equals("ok"))

           {

              nErrorCode = 0;

              bState = true;

           }

           else

           {

              nErrorCode = Integer.parseInt(Common_Functions.getJsonObjectToList(strReturn).get(0).get("error_code").toString());

              if(nErrorCode == 415 || nErrorCode == 416 || nErrorCode == 540)

              {

                  if(shareContext.getStaticNumber() == Common_Variables.refresh_number)

                  {

                     shareContext.setStaticNumber(0);

                     bState = false;

                  }

                  else

                  {

                     shareContext.setStaticNumber(1);

                     //Client SigninAPI

                     if(IsClientSigninAPIOK(Common_Sqlite_Lomowall.ReturnApiKey(context)))

                     {

                         Base_Json_Data cjl = new Base_Json_Data(context);

                         cjl.IsAudioConfigDataOK(name,pitch,rate,tempo,caption,status);

                     }

                  }

              }

              bState = false;

           }

       }

       else

       {

           //网络错误:有500,502,504等等,统一以-1为网络错误code

           nErrorCode = -1;

       }

       return bState;

    }

 

6:展示

 

       for (int i = getDataArray.size(); i >0; i--) {

           mListView = (ListView) findViewById(R.id.mlistView);

           adapter = new SimpleAdapter(this, getDataArray,

                  R.layout.layout_item_1, new String[] { "id","name", "caption" },

                  new int[] { R.id.id , R.id.name, R.id.caption });

           mListView.setAdapter(adapter);

          

           mListView.setOnItemClickListener(new OnItemClickListener() {

              @Override

              public void onItemClick(AdapterView<?> parent, View view,

                     int position, long id) {

                  int pitch =0;int rate=0;int tempo=0;

                     // int u =Integer.parseInt(syear.getText().toString());

                  pitch = Integer.parseInt((String) getDataArray.get(position).get("pitch"));

                  rate =Integer.parseInt((String) getDataArray.get(position).get("rate"));

                  tempo = Integer.parseInt((String) getDataArray.get(position).get("tempo"));

                  if (pitch > 0 && pitch < 100 && rate> 0 && rate < 100

                         && tempo > 0 && tempo< 100) {

                     mSeekBar1.setProgress(pitch);

                     mSeekBar2.setProgress(rate);

                     mSeekBar3.setProgress(tempo);

                  }

              }

           });

       }

   

 

 

7接口的结构:

{

  "callback": "",

  "id": "118",

  "client_info": {

      "screen": "854x480",

      "lon": 108.89905,

      "model": "MB525",

      "boundleid": "com.soundtouch.test",

      "language": "zh-cn",

      "utype": "motorola,umts_jordan",

       "lat": 34.2356,

      "dosv": "2.2.1",

      "version": "1.0",

      "dos": "Android OS"

   },

  "method": "editAudio",

  "params": {

      "audio_param": {

          "name": "",

          "pitch": "",

          "rate": "",

          "tempo": "",

          "caption": "",

          "status": "" // 1 => system ; 2 => User

      }

   },

  "auth": {

      "client_type": "ANDROID",

      "auth_id": "356509041981945",

      "auth_token": "0rltMpmHtVeK"

   }

}

 

8:接口返回的结构

{

   "rst": "ok",

   "req_id": 118,

   "req_method": "editAudio",

   "data": {}

}

 

网络读取数据

 

1:同上:初始化

Common_Json_Lomowall mBase_Json_Data = new Common_Json_Lomowall(this);

(此处为逻辑层定义)

2:启动网络读取数据

if (mBase_Json_Data != null) {

           returnList = mBase_Json_Data.LoadData_GetReturnAudioConfigDataOK(id, name);

       }

       if (!returnList.equals("")) {

           getDataArray = Common_Functions.getJsonArrayToList(returnList,"data");

           Log.i(TAG, "getDataArray.." + getDataArray );

       }

3:逻辑层

/** ReturnAudioConfigDataOK**/

    public String LoadData_GetReturnAudioConfigDataOK(String id, String name)

           throws IOException {

       String ReturnList = "";

       try {

           Base_Json_Data cjl = new Base_Json_Data(context);

           // Lookup SystemWide Server Nodes

           if (cjl.IsLookupServerOK()) {

              //ReturnAudioConfigDataOK

              ReturnList = cjl.ReturnAudioConfigDataOK(id, name);

           }

           nErrorCode = cjl.nErrorCode;

       } catch (IOException e) {

           e.printStackTrace();

       }

       return ReturnList;

    }

4:数据层

// get Audio ConfigData

    public String ReturnAudioConfigDataOK(String id,String name) throws IOException

    {

       String ReturnList = "";

       String strURL = "http://192.168.100.18:10068/mkcmsreport/media/md_audio/request";

       List<NameValuePair> params = new ArrayList<NameValuePair>();

       JSONObject jsonobject = new JSONObject();

       try

       {

           jsonobject.put("id","118");

           jsonobject.put("method","getAudios");

           jsonobject.put("auth",auth);

           jsonobject.put("client_info",client_info);//...

           jsonobject.put("callback","");

 

           JSONObject paramsobject = new JSONObject();

           paramsobject.put("id",id);

           paramsobject.put("name",name);

           jsonobject.put("params",paramsobject);

       }

       catch (JSONException e)

       {

           e.printStackTrace();

       }

 

       params.add(new BasicNameValuePair("data",jsonobject.toString()));

       Base_Json json = new Base_Json();

       String strReturn = json.UploadUserMessage(strURL, params);

       if(!strReturn.equals(""))

       {

           dataList_GC = Common_Functions.getJsonObjectToList(strReturn);

           String strTmp = dataList_GC.get(0).get("rst").toString();

           if(strTmp.equals("ok"))

           {

              ReturnList = strReturn;

              nErrorCode = 0;

           }

           else

           {

              nErrorCode = Integer.parseInt(Common_Functions.getJsonObjectToList(strReturn).get(0).get("error_code").toString());

              if(nErrorCode == 415 || nErrorCode == 416 || nErrorCode == 540)

              {

                  if(shareContext.getStaticNumber() == Common_Variables.refresh_number)

                  {

                     shareContext.setStaticNumber(0);

                  }

                  else

                  {

                     shareContext.setStaticNumber(1);

                     //Client SigninAPI

                     if(IsClientSigninAPIOK(Common_Sqlite_Lomowall.ReturnApiKey(context)))

                     {

                         Base_Json_Data cjl = new Base_Json_Data(context);

                         cjl.ReturnAudioConfigDataOK(id,name);

                     }

                  }

              }

           }

       }

       else

       {

           //网络错误:有500,502,504等等,统一以-1为网络错误code

           nErrorCode = -1;

       }

       return ReturnList;

    }

 

5:展示listView

       for (int i = getDataArray.size(); i >0; i--) {

           mListView = (ListView) findViewById(R.id.mlistView);

           adapter = new SimpleAdapter(this, getDataArray,

                  R.layout.layout_item_1, new String[] { "id","name", "caption" },

                  new int[] { R.id.id , R.id.name, R.id.caption });

           mListView.setAdapter(adapter);

          

           mListView.setOnItemClickListener(new OnItemClickListener() {

              @Override

               public voidonItemClick(AdapterView<?> parent, View view,

                     int position, long id) {

                  int pitch =0;int rate=0;int tempo=0;

                     // int u =Integer.parseInt(syear.getText().toString());

                  pitch = Integer.parseInt((String) getDataArray.get(position).get("pitch"));

                  rate = Integer.parseInt((String) getDataArray.get(position).get("rate"));

                  tempo = Integer.parseInt((String) getDataArray.get(position).get("tempo"));

                  if (pitch > 0 && pitch < 100 && rate> 0 && rate < 100

                         && tempo > 0 && tempo< 100) {

                     mSeekBar1.setProgress(pitch);

                     mSeekBar2.setProgress(rate);

                     mSeekBar3.setProgress(tempo);

                  }

              }

           });

       }

   

 

6:接口结构

{

   "callback": "",

   "id": "118",

   "client_info": {

       "screen": "854x480",

       "lon": 108.89905,

       "model": "MB525",

       "boundleid": "com.soundtouch.test",

       "language": "zh-cn",

       "utype": "motorola,umts_jordan",

       "lat": 34.2356,

       "dosv": "2.2.1",

       "version": "1.0",

       "dos": "Android OS"

   },

   "method": "getAudios",

   "params": {

       "id": "...",

       "name": "..."

   },

   "auth": {

       "client_type": "ANDROID",

       "auth_id": "356509041981945",

       "auth_token": "0rltMpmHtVeK"

    }

}

 

7:接口的返回

{

   "rst": "ok",

   "req_id": 118,

   "req_method": "getAudios",

   "data": [

       {

           "id": "...",

           "name": "…",

           "pitch": "…",

           "rate": "…",

           "tempo": "…",

           "caption": "…",

           "status": "…"

       },

       {

           "id": "...",

           "name": "…",

           "pitch": "…",

           "rate": "…",

           "tempo": "…",

           "caption": "…",

           "status": "…"

       }

    ]

}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值