zoukankan      html  css  js  c++  java
  • php android json

    //android
    public class GoWinHttp {
    //通过post获得数据
    public static String postHttpData(String url,List<NameValuePair> nameValuePairs)
    {
    String resultStr=null;
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost(url);
    try {
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    HttpResponse response;
    response=httpclient.execute(httppost);
    resultStr=EntityUtils.toString(response.getEntity());
    } catch (UnsupportedEncodingException e) {
    Log.d(url, "UnsupportedEncodingException");
    e.printStackTrace();
    } catch (ClientProtocolException e) {
    Log.d(url, "ClientProtocolException");
    e.printStackTrace();
    } catch (IOException e) {
    Log.d(url, "IOException");
    e.printStackTrace();
    }
    return resultStr;
    }
    }
    List<NameValuePair> nameValuePairs  构建  这是,post给php的参数
    nameValuePairs.add(new BasicNameValuePair("key","value"));

    //解析方法,主要是,这里有一点特殊,就是开始第一个json对象是jsonObject 和JSONArray 有一点不同,jsonObject 是指json最开始以{开始的,而以[开始的是JSONArray ,没仔细研究,这里他们都是字符串

    //解析JSON数据
    public static List<Map<String,String>>resolveData(String jsonStr)
    {
    List<Map<String,String>>ls=new ArrayList<Map<String,String>>();
    Map<String,String> data;
    JSONObject jsonObject;
    JSONArray jsonArr;
    JSONArray nameArr;
    try {
    jsonArr=new JSONArray(jsonStr);
    for(int i=0;i<jsonArr.length();i++)
    {
    jsonObject=jsonArr.getJSONObject(i);
    nameArr=jsonObject.names();
    data=new HashMap<String,String>();
    String name;
    for(int j=0;j<nameArr.length();j++)
    {
    name=nameArr.getString(j);
    data.put(name, jsonObject.getString(name));
    }
    ls.add(data);
    }

    } catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return ls;
    }


    //php上面不管以任何方式得到一个数组,然后将数组编码成为json格式

    //这里有一个方法可以将一整张表转换为数组

    <?php
    //获取一张表的所有数据
    function getTabDatas($tabName,$link){
    if($tabName=="")
    {
    exit;
    }
    $sqlStr='SELECT * FROM '.$tabName;
    $result = mysql_query($sqlStr, $link);
    if (!$result) {
    exit;
    }
    $fields= array();
    for ($i=0; $i<mysql_num_fields($result); $i++)
    {
    $fields[] =mysql_field_name($result, $i);
    }
    $arr=array();
    while ($row = mysql_fetch_assoc($result)) {
    $once=array();

    foreach ($fields as $value)
    {
    $once[$value]=$row[$value];
    }

    $arr[]=$once;
    }
    mysql_free_result($result);
    closeSqlconn();
    return $arr;
    }
    ?>

    //然后php只需要将得到的数组格式化为json就行了

     $json_string = json_encode($resArr);
    echo $json_string;
    //超时请求
    httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 5000);
    //读取超时
    httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 5000);





  • 相关阅读:
    学习笔记1—多线程相关笔记
    【Java并发编程一】线程安全问题
    Intellij IDEA配置优化--转载
    idea使用阿里工具优化代码+阿里开发手册
    Navicat Premium 12.1.12.0安装与激活
    H5分享功能
    excel导出使用get请求参数过长问题
    百度地图Web引用
    idea通过mapper快速定位到xml文件
    Win10企业版永久激活方法(cmd命令)
  • 原文地址:https://www.cnblogs.com/meieiem/p/2195626.html
Copyright © 2011-2022 走看看