设为首页 收藏本站
查看: 804|回复: 0

[经验分享] php android json

[复制链接]

尚未签到

发表于 2015-8-25 09:02:31 | 显示全部楼层 |阅读模式
//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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-103802-1-1.html 上篇帖子: LFI、RFI、PHP封装协议安全问题学习 下篇帖子: [轉]最流行的PHP MVC框架
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表