来自服务器的JSON回复

时间:2012-11-16 15:00:25

标签: android json

我正在用eclipse编写一个android应用程序。我可以连接到服务器以获得json响应。但是,我的回答看起来像这样。

\n\n{"product_id":"200003578","category":"Jacket","price":"799","description":"Wool blended, Pea","details":"73% Wool, 27 Nylon"}\n

无法通过eclipse解决并返回异常。

有谁知道我如何处理此响应并将其解析为数组?

这是我的php代码:

 include ("db3.inc");

$sql = "SELECT * from product WHERE product_id='200003578'";
$result = mysql_query($sql);

$array = mysql_fetch_assoc($result);
$product_id=$array['product_id'];


echo json_encode( $array );

这是我用于解码json响应的代码。

    String product_id = null;
    String colour_id = null;
    String colour= null;
    String picture= null;
    try{
    JSONArray jArray = new JSONArray(z);
    JSONObject json_data=null;
    for(int i=0;i<jArray.length();i++){
            json_data = jArray.getJSONObject(i);
            product_id=json_data.getString("product_id");
            colour_id=json_data.getString("colour_id");
            colour=json_data.getString("colour");
            picture=json_data.getString("picture");

    }
    }catch(JSONException e1){
        //Toast.makeText(getBaseContext(), "No Food Found", Toast.LENGTH_LONG).show();
    }

    myActivity.text.setText(product_id);

1 个答案:

答案 0 :(得分:1)

这是JSONObject而非JSONArray,应将其解析为:

JSONObject json_data=new JSONObject(yourstring.trim());
product_id=json_data.getString("product_id");
colour_id=json_data.getString("colour_id");
colour=json_data.getString("colour");
picture=json_data.getString("picture");

检查http://www.androidhive.info/2012/01/android-json-parsing-tutorial/