簡體   English   中英

使用 GSON 形成 Json

[英]Forming Json using GSON

我正在嘗試使用 gson 形成以下 json。

  visitors  : [
                ['01/2015', 1500],
                ['02/2015', 2500],
                ['03/2015', 1700],
                ['04/2015', 900],
                ['05/2015', 1500],
                ['06/2015', 2350],
                ['07/2015', 1500],
                ['08/2015', 1300],
                ['09/2015', 4600]
            ]

我不知道如何做到這一點,任何人都可以幫助我

對於此類任務,您可以使用諸如Convert XML 或 JSON to JAVA POJO 之類的 Web 實用程序

以下是我為你的 JSON 得到的。


public class MyPojo
{
    private String[][] visitors;

    public String[][] getVisitors ()
    {
        return visitors;
    }

    public void setVisitors (String[][] visitors)
    {
        this.visitors = visitors;
    }

    @Override
    public String toString()
    {
        return "ClassPojo [visitors = "+visitors+"]";
    }
}

如果您的 java 對象采用上述格式,則應正確將其轉換為 JSON。

您的 json 不是有效的。

{ "訪客": [ [ "01/2015", 1500 ], [ "02/2015", 2500 ], [ "03/2015", 1700 ], [ "04/2015", 900 ], [ "05/ 2015", 1500 ], [ "06/2015", 2350 ], [ "07/2015", 1500 ], [ "08/2015", 1300 ], [ "09/2015", 4600 ] ] }

我打印的這個 json 是經過驗證的。 使用 setter 和 getter 創建一個對象。如下例所示

import java.util.*;
  public class MyObject
 {private List<List<Map<String,Integer>>>visitors;
  public void setVisitors(List<List<Map<String,Integer>>>visitors)
   {this.visitors=visitors;
    }
public List<List<Map<String,Integer>>> getVisitors()
   {return this.visitors;
    }}

public class Test{
public static void main(String arg[]){
     Type objType = new TypeToken<MyObject>() {}.getType();
     MyObject obj= new MyObject();
     ArrayList<List> outerList=new ArrayList<List>();
     ArrayList innerList=new ArrayList<Map<String,Integer>>();
     Map mp=new HashMap();
     mp.put("03/2015",1700);
     innerList.add(mp);
     outerList.add(innerList);
     obj.setVisitors(outerList);
     Gson gson = new Gson();
     String json = gson.toJson(obj, objType );}}

The json now will be similar to your Json in discussion.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM