Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
221 views
in Technique[技术] by (71.8m points)

android - How to turn JSON string into table?

How to turn this JSON:

{"GetReportResult":
  [
   {"bulan":"4","total":"2448","type":"CHEESE1K"}, 
   {"bulan":"4","total":"572476","type":"ESL"},
   {"bulan":"4","total":"46008","type":"ESL500ML"},
   {"bulan":"5","total":"5703","type":"CHEESE1K"},
   {"bulan":"5","total":"648663","type":"ESL"},
   {"bulan":"5","total":"51958","type":"WHP"},
   {"bulan":"6","total":"6190","type":"CHEESE1K"},
   {"bulan":"6","total":"443335","type":"ESL"},
   {"bulan":"6","total":"30550","type":"ESL500ML"},
  ]
}

Into table like this on Android:

---------------------------------------------
|   type   | total1  |   total2   |  total3 |
---------------------------------------------
| CHEESE1K | 6190    |   5703     |  2448   |
| ESL      | 443335  |   648663   |  572476 |
| WHP      | 30550   |   51958    |  46008  |
---------------------------------------------

What is the best way to do that? Thank you :)

here is the code that I've made so far

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

easy way could be

  • parse JSON string using GSON

like this:

    String json = "{"GetReportResult":" + 
"  [" + 
"   {"bulan":"4","total":"2448","type":"CHEESE1K"}, " + 
"   {"bulan":"4","total":"572476","type":"ESL"}," + 
"   {"bulan":"4","total":"46008","type":"ESL500ML"}," + 
"   {"bulan":"5","total":"5703","type":"CHEESE1K"}," + 
"   {"bulan":"5","total":"648663","type":"ESL"}," + 
"   {"bulan":"5","total":"51958","type":"WHP"}," + 
"   {"bulan":"6","total":"6190","type":"CHEESE1K"}," + 
"   {"bulan":"6","total":"443335","type":"ESL"}," + 
"   {"bulan":"6","total":"30550","type":"ESL500ML"}," + 
"  ]" + 
"}"; 
ReportResults reports = new Gson().fromJson(json, ReportResults.class);
List<ReportResult> results = reports.getGetReportResult();
for(ReportResult result:results)System.out.println(result);

The ReportResults class:

package com.yourcomp.test;
import java.util.List;

public class ReportResults {

    private List<ReportResult> GetReportResult;

    /**
     * Gets the getReportResult.
     * 
     * @return <tt> the getReportResult.</tt>
     */
    public List<ReportResult> getGetReportResult() {
        return GetReportResult;
    }

    /**
     * Sets the getReportResult.
     *
     * @param getReportResult <tt> the getReportResult to set.</tt>
     */
    public void setGetReportResult(List<ReportResult> getReportResult) {
        GetReportResult = getReportResult;
    }


}

The ReportResult class:

package com.yourcomp.test;

public class ReportResult {

    private String bulan; 
    private String total;
    private String type;
    /**
     * Gets the bulan.
     * 
     * @return <tt> the bulan.</tt>
     */
    public String getBulan() {
        return bulan;
    }
    /**
     * Sets the bulan.
     *
     * @param bulan <tt> the bulan to set.</tt>
     */
    public void setBulan(String bulan) {
        this.bulan = bulan;
    }
    /**
     * Gets the total.
     * 
     * @return <tt> the total.</tt>
     */
    public String getTotal() {
        return total;
    }
    /**
     * Sets the total.
     *
     * @param total <tt> the total to set.</tt>
     */
    public void setTotal(String total) {
        this.total = total;
    }
    /**
     * Gets the type.
     * 
     * @return <tt> the type.</tt>
     */
    public String getType() {
        return type;
    }
    /**
     * Sets the type.
     *
     * @param type <tt> the type to set.</tt>
     */
    public void setType(String type) {
        this.type = type;
    }
    /* (non-Javadoc)
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        return "ReportResult [bulan=" + bulan + ", total=" + total + ", type="
                + type + "]";
    }


}

Then use the parsed result to show in TableLayout.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...