[英]how to convert gson data to a string using json
我试图通过使用gson将json对象转换为字符串,这是我的一些代码
public void returnJson(){
TextView one = (TextView) findViewById(R.id.textView1);
try{
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://10.0.2.2/textures_story_list.php");
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e) {
one.setText("error3");
}
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();
result = sb.toString();
}catch(Exception e) {
one.setText("error2");
}
try{
JSONArray jArray = new JSONArray(result);
for(int i = 0;i<jArray.length();i++){
JSONObject json_data = jArray.getJSONObject(0);
//Log.i("log_tag","story_name: "+json_data.getString("story_name") );
result += "\n" + jArray.getJSONObject(i);
}
one.setText(result);
}
catch(JSONException e) {
one.setText("error1");
}
return;
//end of returnJson()
}
这就是文本视图中的输出
[{"story_name":"Story One"},{"story_name":"Story Two"},{"story_name":"Story Three"},{"story_name":"Story Four"},{"story_name":"Story Five"},{"story_name":"Story Six"}]
{"story_name":"Story One"}
{"story_name":"Story Two"}
{"story_name":"Story Three"}
{"story_name":"Story Four"}
{"story_name":"Story Five"}
{"story_name":"Story Six"}
就是这样,我需要知道为什么它输出两次,以及哪些代码导致每次输出,然后我还需要知道如何用gson更改它,以便输出
Story One
Story Two
Story Three
Story Four
Story Five
Story Six
首先,这行似乎没有目的。
JSONObject json_data = jArray.getJSONObject(0);
输出出现两次,因为该行
[{"story_name":"Story One"},{"story_name":"Story Two"},{"story_name":"Story Three"},{"story_name":"Story Four"},{"story_name":"Story Five"},{"story_name":"Story Six"}]
当您开始“附加”其他字符串时,结果字符串中已经存在该字符串。
如果输出如此简单,则您需要做的是:
String storyNames = "";
for(int i = 0;i<jArray.length();i++){
storyNames += jArray.getJSONObject(i).getString("story_name");
}
您真的不需要Gson这么简单的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.