在Android中发送和解析JSON对象

在Android中发送和解析JSON对象

我想以JSON对象的形式向服务器发送消息,并解析来自服务器的JSON响应。

JSON对象示例

{
  "post": {
    "username": "John Doe",
    "message": "test message",
    "image": "image url",
    "time":  "current time"
  }}

我正在尝试通过逐个属性来手动解析JSON。我是否可以使用任何库/实用程序来简化此过程?


繁花如伊
浏览 661回答 4
4回答

江户川乱折腾

你可以用org.json.JSONObject和org.json.JSONTokener..您不需要任何外部库,因为这些类都是由AndroidSDK提供的。

元芳怎么了

这是JsonParser类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             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;     }注意:SDK 23不再支持DefaultHttpClient,因此建议在此代码中使用目标SDK 21。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android
Java