• 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);





  • 相关阅读:
    忘记mysql的登陆密码该怎么办?
    localhost和127.0.0.1的区别
    什么是DAPP
    System.NullReferenceException:未将对象引用设置到对象的实例,这是一个新鸟,中鸟,老鸟都避不开的错误
    VS2015中常用快捷键的修改推荐
    Win10系统开启IIS服务步骤
    ASP.NET学习路线图
    我眼中的技术地图
    WEBSTORM中html文件运行之后出现乱码的问题解决
    ExtJS新手学习中常见问题
  • 原文地址:https://www.cnblogs.com/meieiem/p/2195626.html
Copyright © 2020-2023  润新知