注册 登录
悉远 返回首页

焰阳小窝 http://bbs.7cuu.com/?1 [收藏] [复制] [分享] [RSS]

日志

android解析php输出的json格式字符串实例

已有 2090 次阅读2012-12-20 19:37 |个人分类:Android| php, 字符串

在服务器端使用php从mysql数据库中查找数据出来,然后构造成json,等待客户端以get方式获取。
本例子基本在上次的例子上面进行。图片效果如下:

访问页面的json数据为:
{“value”:[{"nid":"1","title":"迎新","keyword":"迎 新","date_time":"1309791386","content":"某某学院将于XX年XX月XX日XX点于XX地举办XX届迎新晚会! "},{"nid":"2","title":"南岭校区艺术活动中心","keyword":"南岭,艺 术","date_time":"1309791498","content":"赛后,康永刚处长致闭幕辞,祝贺比赛圆满结束,恭喜参赛选手斩获佳 绩。"}]}
[java] 
index.php代码 
 
<?php 
    header("Content-Type: text/html; charset=UTF-8"); 
    $type = $_GET['type']; 
    if($type == 1) 
    { 
        //$obj->title = "Test"; 
        //$obj->id = 1; 
        //$obj->value = urlencode("TTT"); 
        //echo urldecode ( json_encode ($obj)); 
        $array = array( 'title'=>'TTT', 'id'=>1, 'value'=>urlencode("测试")); 
        echo urldecode(json_encode($array)); 
    } 
    else 
    { 
        $con = mysql_connect ( "localhost", "root", "windows" ); 
        if (!$con) 
        { 
            die ( 'Could not connect: ' . mysql_error () ); 
        } 
        mysql_select_db ( "dg", $con ); 
        mysql_query ( "set names utf8" ); 
        $query = "select * from p_news"; 
        $result = mysql_query ( $query ); 
        while ( $row = mysql_fetch_assoc ( $result ) ) 
        { 
            $response [] = $row; 
        } 
        foreach ( $response as $key => $value ) 
        { 
            $newData[$key] = $value; 
            $newData [$key] ['title'] = urlencode ( $value ['title'] ); 
            $newData [$key] ['keyword'] = urlencode ( $value ['keyword'] ); 
            $newData [$key] ['content'] = urlencode ( $value ['content'] ); 
        } 
        echo urldecode ( json_encode ( array("value"=>$newData) )); 
                  mysql_free_result($result); 
        mysql_close ( $con ); 
    } 
?> 
Android中Java代码如下: 
 
public void getServerJsonDataWithType(String url,EditText editText) 
    { 
        int res = 0; 
        HttpClient client = new DefaultHttpClient(); 
        StringBuilder str = new StringBuilder(); 
        HttpGet httpGet = new HttpGet(url); 
        BufferedReader buffer = null; 
        try 
        { 
            HttpResponse httpRes = client.execute(httpGet); 
            httpRes = client.execute(httpGet); 
            res = httpRes.getStatusLine().getStatusCode(); 
            if(res == 200) 
            { 
                buffer = new BufferedReader(new InputStreamReader(httpRes.getEntity().getContent(),Charset.forName("UTF-8"))); 
                for(String s = buffer.readLine(); s != null ; s = buffer.readLine()) 
                { 
                    str.append(s); 
                } 
                Log.i(Tag,str.toString()); 
                buffer.close(); 
                JSONArray json = new JSONObject(str.toString()).getJSONArray("value"); 
                String strs = ""; 
                for(int i=0;i<json.length();i++) 
                { 
                    JSONObject jsonObject = (JSONObject)json.opt(i); 
                    strs += jsonObject.getString("content"); 
                } 
                //String title = json.getString("title"); 
                //int id = json.getInt("id"); 
                //String value = json.getString("value"); 
                editText.setText(strs); 
            } 
            else 
            { 
                Log.i(Tag, "HttpGet Error"); 
            } 
        } 
        catch(Exception e) 
        { 
            Log.i(Tag, "Exception"); 
            if(buffer != null) 
            { 
                try { 
                    buffer.close(); 
                } catch (IOException e1) { 
                    // TODO Auto-generated catch block 
                    e1.printStackTrace(); 
                } 
            } 
        } 
    } 
数据库代码如下:

CREATE

TABLE
IF NOT

EXISTS `p_news` (

  `nid`
int(11)
NOT

NULL
AUTO_INCREMENT,

  `title`
varchar(50)
NOT

NULL,

  `keyword`
varchar(25)
NOT

NULL,

  `date_time`
int(10)
NOT

NULL,

  `content`
 text NOT

NULL,

  PRIMARY

KEY
(`nid`)

)
 ENGINE=MyISAM  DEFAULT

CHARSET=utf8 AUTO_INCREMENT=5 ;

 

--

--
 Dumping data for table `p_news`

--

 

INSERT

INTO
`p_news` (`nid`, `title`, `keyword`, `date_time`, `content`) VALUES

(1,
'迎新',
'迎新',
 1309791386, '某某学院将于XX年XX月XX日XX点于XX地举办XX届迎新晚会!
 '),

(2,
'南岭校区艺术活动中心',
'南岭,艺术',
 1309791498, '赛后,康永刚处长致闭幕辞,祝贺比赛圆满结束



路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

QQ|QQ客服|联系我们|Archiver|手机版|小黑屋|悉远网络 ( 鄂ICP备09013446号 )

GMT+8, 2024-5-3 08:41 , Processed in 0.048776 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

返回顶部