1

我创建了一个 HTTP GET 函数,该函数从我的服务器检索响应并将其显示为文本视图中的 JSON。

如何将以下内容变为字符串以供我的 textview 读取。

{"response":"ok"}

这是我的 HTTP GET 请求

public class GetMethodEx {

public String getInternetData() throws Exception {


BufferedReader in = null;
String data = null;

try {
    HttpClient client = new DefaultHttpClient();
    client.getConnectionManager().getSchemeRegistry().register(getMockedScheme());

    URI website = new URI("https://server.com:8443/login?username=hm&password=123");
    HttpGet request = new HttpGet();
    request.setURI(website);
    HttpResponse response = client.execute(request);
    response.getStatusLine().getStatusCode();

    in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
    StringBuffer sb = new StringBuffer("");
    String l = "";
    String nl = System.getProperty("line.separator");
    while ((l = in.readLine()) != null) {
        sb.append(l + nl);
    }
    in.close();
    data = sb.toString();
    return data;
} finally {
    if (in != null) {
        try {
            in.close();
            return data;
        } catch (Exception e) {
            Log.e("GetMethodEx", e.getMessage());
        }
    }
}
4

4 回答 4

2

使用下面的代码来解析 json 数据。

JSONObject jObject;
try {
    jObject = new JSONObject(data);
    String mResponse = jObject.getString("response");
    mTxtView1.setText(mResponse);
} catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
于 2012-12-06T13:27:58.997 回答
0

我想它应该是这样的:

String json = "{\"response\":\"ok\"}";
JSONObject object = new JSONObject(json);
String response = object.getString("response");
TextView view = findViewById(id);
view.setText(response);

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

于 2012-12-06T13:22:51.433 回答
0

使用 Json 解析器。

 //json parser for http get
 JSONParser jParser = new JSONParser();
 // getting JSON string from URL
 JSONObject json = jParser.getJSONFromUrl(url);
 String result = json.optString("response", "default");

JSONParser.java

public class JSONParser {
static InputStream is = null;
static JSONObject jObj = null;
static String json = "";
// constructor
public JSONParser() {
}

public JSONObject getJSONFromUrl(String url) {
    // Making HTTP request
    try {
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);
        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();
        is = httpEntity.getContent();   
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                is, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        json = sb.toString();
    } catch (Exception e) {
        Log.e("Buffer Error", "Error converting result " + e.toString());
    }

    // try parse the string to a JSON object
    try {
        jObj = new JSONObject(json);
    } catch (JSONException e) {
        Log.e("JSON Parser", "Error parsing data " + e.toString());
    }

    // return JSON String
    return jObj;
 }
 }
于 2012-12-06T13:24:06.457 回答
0

尝试这个 :

    try {
            JSONObject jsonObject = new JSONObject(yourString);
            String response = jsonObject.getString("response");
            textView.setText(response);

    } catch (JSONException e) {

        e.printStackTrace();
    }
于 2012-12-06T13:24:09.233 回答