繁体   English   中英

如何使用json将gson数据转换为字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM