使用GSON通过ID获取特定的json对象

时间:2015-07-14 14:31:04

标签: android json gson

我正在尝试在json解析中发展我的技能。我发现我必须实现某种json解析库,例如GSON。我的例子https://www.dropbox.com/s/sef54sc2pgdws7f/NSTextViewAddSubviews.zip?dl=0有这个json。这是我用来从json获取值的代码:

private class PostFetcher extends AsyncTask<Void, Void, String> {
    private static final String TAG = "PostFetcher";
    public static final String SERVER_URL = "http://kylewbanks.com/rest/posts";

    @Override
    protected String doInBackground(Void... params) {
        try {
            //Create an HTTP client
            HttpClient client = new DefaultHttpClient();
            HttpPost post = new HttpPost(SERVER_URL);

            //Perform the request and check the status code
            HttpResponse response = client.execute(post);
            StatusLine statusLine = response.getStatusLine();
            if(statusLine.getStatusCode() == 200) {
                HttpEntity entity = response.getEntity();
                InputStream content = entity.getContent();

                try {
                    //Read the server response and attempt to parse it as JSON
                    Reader reader = new InputStreamReader(content);

                    GsonBuilder gsonBuilder = new GsonBuilder();
                    gsonBuilder.setDateFormat("M/d/yy hh:mm a");
                    Gson gson = gsonBuilder.create();
                    List<Post> posts = Arrays.asList(gson.fromJson(reader, Post[].class));
                    content.close();

                    handlePostsList(posts);
                } catch (Exception ex) {
                    Log.e(TAG, "Failed to parse JSON due to: " + ex);
                    failedLoadingPosts();
                }
            } else {
                Log.e(TAG, "Server responded with status code: " + statusLine.getStatusCode());
                failedLoadingPosts();
            }
        } catch(Exception ex) {
            Log.e(TAG, "Failed to send HTTP POST request due to: " + ex);
            failedLoadingPosts();
        }
        return null;
    } 
}

我想知道是否可以通过使用ID从一个json对象获取数据。是否有可能或者不是,如果有可能请你帮助我理解它,因为我现在陷入僵局,我无法理解gson的很多东西。

我发现在gson中可能有类似的东西吗?:

for (int i = 0; i < recs.length(); ++i) {
    JSONObject rec = recs.getJSONObject(i);
    int id = rec.getInt("id");
    String loc = rec.getString("loc");
    // ...
}

0 个答案:

没有答案