簡體   English   中英

返回字符串解析JSON(格式GSON)

[英]Return string parsing JSON (format GSON)

我有下一個代碼:

public class Footballer {
    private String name;
    private int number;
    private Position[] positions;

    public Footballer(String name, int number, Position[] positions){
        setName(name);
        setNumber(number);
        setPositions(positions);
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getNumber() {
        return number;
    }

    public void setNumber(int number){
        this.number = number;
    }

    public Position[] getPositions() {
        return positions;
    }

    public void setPositions(Position[] positions){
        this.positions = positions;
    }

    public String getJSON(){
        
    }

}

我有這個測試:

void testJson() {
        assertEquals("{\"name\":\"Buffon\",\"number\":1,\"positions\":[\"GOALKEEPER\"]}", footballer1.getJSON());
        assertEquals("{\"name\":\"Pedri\",\"number\":9,\"positions\":[\"MIDFIELDER\",\"FORWARD\"]}", footballer2.getJSON());
    }

我必須對 getJSON 方法進行編碼才能獲得您可以在測試中看到的結果。 如何在一行中編寫方法?

我必須使用 GSON。

謝謝

檢查這個(官方 gson 用戶指南)示例


對於cannot resolve symbol Gson ,(當然)您必須:

import com.google.gson.Gson; // within your "import directives" ("between package and class declaration";)

..並使庫在(編譯和運行時)類路徑上可用。


在定義(靜態) Gson對象后(在Footballer類或某處..):

private static Gson DA_GSON = new Gson();

您可以定義您的“1-line-gson-method”,例如:

public String getJSON(){        ​
   ​return DA_GSON.toJson(this);// this hopefully never null!;)
  // and of course you could also "new Gson()" every time...
​}

如果您的“玩家”初始化如下:

Footballer footballer1 = new Footballer("Buffon", 1, {Position.GOALKEEPER}); //Position enum!(?)
Footballer footballer2 = new Footballer("Pedri", 9, {Poistion.MIDFIELDER, Position.FORWARD});

..您/我們的測試可以通過!

暫無
暫無

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

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