【发布时间】:2019-09-11 04:22:26
【问题描述】:
我正在创建一个新闻应用程序,它使用 Guardian API 显示新闻列表,并且我正在使用 Volley 进行网络连接。但问题是当我从 JSON 对象中获取字符串并将它们直接存储在模型类中时,当我打开应用程序时,其中一些带有特殊字符。我想摆脱它们(见图)
我正在从 onCreate() 调用 prepareData() 方法
private void prepareData() {
//Create request queue
RequestQueue requestQueue = Volley.newRequestQueue(this);
//Create new String request
StringRequest stringRequest = new StringRequest(Request.Method.GET,
GUARDIAN_URL,
response -> {
Log.i(LOG_TAG,"TEST: Response Received");
progressBar.setVisibility(View.GONE);
try {
JSONObject jsonObject = new JSONObject(response);
JSONObject response_obj = jsonObject.getJSONObject("response");
JSONArray resultArray = response_obj.getJSONArray("results");
for (int i = 0; i < resultArray.length(); i++) {
JSONObject jo = resultArray.getJSONObject(i);
String news_title = jo.getString("webTitle");
String author_name = "No author";
String section_name = jo.getString("sectionName");
String published_date = jo.getString("webPublicationDate");
String web_url = jo.getString("webUrl");
Log.i("TEST","news-title: "+ news_title + " section: "+section_name+ " date: "+published_date);
News news_item = new News(news_title, author_name, section_name, published_date, web_url);
news_list.add(news_item);
}
if (news_list.isEmpty()){
//set empty text visible and recycler view GONE if no news found
empty_text.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
}
else {
//if news available set empty text to GONE
empty_text.setVisibility(View.GONE);
recyclerView.setVisibility(View.VISIBLE);
//RecyclerView adapter
mNewsAdapter= new NewsAdapter(news_list,this);
//setting adapter with recyclerView
recyclerView.setAdapter(mNewsAdapter);
}
} catch (JSONException e) {
e.printStackTrace();
}
},
//Method that handles error in volley
error -> Toast.makeText(getApplicationContext(),error.getMessage(),Toast.LENGTH_SHORT).show());
//add string request to request queue
requestQueue.add(stringRequest);
}
【问题讨论】:
标签: android json android-volley