【问题标题】:how to convert gson data to a string using json如何使用json将gson数据转换为字符串
【发布时间】:2012-03-05 13:36:26
【问题描述】:

我正在尝试使用 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

【问题讨论】:

标签: android json http-post gson


【解决方案1】:

首先,这条线似乎没有任何意义......

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。

【讨论】:

  • 感谢 saad 如果我要在 listView 中使用它,我应该添加“\n”吗?
  • 它半有效,但现在它输出故事 oneStory TwoStory 3 等,我尝试添加 "\n" storyNames += "\n" jArray.getJSONObject(i).getString("story_name");但这什么也没显示
  • 我如何得到分开的名字
  • 哇...在 ListView 中使用它是完全不同的事情。那是不同的……但storyNames += jArray.getJSONObject(i).getString("story_name") + "\n"; 应该可以解决这个问题。
  • 太棒了,我知道如何使用列表视图,我不只是将字符串添加到其中吗?
猜你喜欢
  • 2015-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多