JSON解析到textview Android

时间:2012-12-06 13:19:11

标签: android json http text-parsing

我创建了一个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 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分: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/

答案 2 :(得分:0)

使用Json Parser。

 //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;
 }
 }

答案 3 :(得分:0)

试试这个:

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

    } catch (JSONException e) {

        e.printStackTrace();
    }