如何将JSON字符串转换为表格?

时间:2012-06-28 06:42:52

标签: android json

如何改变这个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"},
  ]
}

在Android上进入这样的表:

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

最好的方法是什么?谢谢:))

here is the code that I've made so far

2 个答案:

答案 0 :(得分:1)

在您的代码中,您将mylist传递给ListAdapter,但您并未将map添加到mylist任何位置。

答案 1 :(得分:1)

简单的方法可能是

  • 使用GSON
  • 解析JSON字符串
像这样:

    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);

ReportResults类:

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;
    }


}

ReportResult类:

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 + "]";
    }


}

然后使用解析后的结果显示在TableLayout中。