duanchangnie7996 2012-04-10 22:14
浏览 69
已采纳

将json解析为字符串时出错

enter image description hereGuys i am trying to connect my android app to php server and using json to encode data . I am unable to decode it on the app. Please help

public class JsonDemoActivity extends Activity implements OnClickListener{
    /** Called when the activity is first created. */
     HttpPost httppost;

        StringBuffer buffer;

        HttpResponse response;

        HttpClient httpclient;
        TextView tv;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        tv=(TextView) findViewById(R.id.textView1);
        Button b=(Button) findViewById(R.id.button1);
        b.setOnClickListener(this);
    }

    public void onClick(View v) {
        // TODO Auto-generated method stub
         try{

             httpclient=new DefaultHttpClient();

             httppost= new HttpPost("http://10.0.2.2/jsondemo.php"); // make sure the url is correct.



             response=httpclient.execute(httppost);

             HttpEntity he=response.getEntity();

             JSONObject jo=new JSONObject(EntityUtils.toString(he));

             String message=jo.getString("message");
             String from=jo.getString("from");
             String to=jo.getString("to");

             tv.setText("Message "+message+"/n"+"from "+from+"/n"+"to "+to);



             tv.setText("Response from PHP : " + response);

         }catch(Exception e){

             System.out.println("Exception : " + e.getMessage());
                tv.setText(e.getLocalizedMessage());
                System.out.println("Response from php"+response);
         }

    }
}

Here is the php side code

<?php

header('Content-Type: application/json');
$obj = new stdClass();

$obj->message="hello";
$obj->from="pratik";
$obj->to="server";

echo json_encode($obj);
?>

I am getting the error cannot convert json to string.enter image description here

  • 写回答

1条回答 默认 最新

  • duanla8800 2012-04-11 10:11
    关注

    I removed the line tv.setText("Response from PHP : " + response); from the code. It finally worked.!!!

    tv.setText("Message "+message+"/n"+"from "+from+"/n"+"to "+to); That was getting overwritten by tv.setText("Response from PHP : " + response);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化