近期項目需要 參照團隊代碼使用Gson的JsonObject操作json資料 實作背景接收到list資料後将其轉化為json格式資料存儲在資料庫表的一個字段中 以及從資料庫取出後以list的形式發往前端
添加maven依賴
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.4</version>
</dependency>
導包
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
json與list互轉需要的model對象
public class Particular {
private Integer iid;
private float score;
private String particulars;
public Integer getIid() {
return iid;
}
public void setIid(Integer iid) {
this.iid = iid;
}
public String getParticulars() {
return particulars;
}
public void setParticulars(String particulars) {
this.particulars = particulars;
}
public float getScore() {
return score;
}
public void setScore(float score) {
this.score = score;
}
}
list生成json代碼
public String listToJson(List<Particular > record){
JsonArray array = new JsonArray();
JsonParser jsonParser = new JsonParser();
for(Particular p:record) {
JsonObject object = new JsonObject();
object.addProperty("iid", p.getIid());
object.addProperty("score", p.getScore());
object.addProperty("particulars", p.getParticulars());
array.add(jsonParser.parse(object.toString()));
}
return array.toString();
}
生成的json格式資料
- 格式截圖
- json代碼
[
{
"iid": 0,
"score": 20,
"particulars": "國前一"
},
{
"iid": 1,
"score": 15,
"particulars": "國前二"
},
{
"iid": 2,
"score": 10,
"particulars": "國前三"
},
{
"iid": 3,
"score": 5,
"particulars": "國優秀獎"
},
{
"iid": 4,
"score": 10,
"particulars": "省前一"
},
{
"iid": 5,
"score": 9,
"particulars": "省前二"
},
{
"iid": 6,
"score": 8,
"particulars": "省前三"
},
{
"iid": 7,
"score": 7,
"particulars": "省優秀獎"
},
{
"iid": 8,
"score": 8,
"particulars": "市前一"
},
{
"iid": 9,
"score": 7,
"particulars": "市前二"
},
{
"iid": 10,
"score": 6,
"particulars": "市前三"
},
{
"iid": 11,
"score": 5,
"particulars": "市優秀獎"
},
{
"iid": 12,
"score": 5,
"particulars": "校前一"
},
{
"iid": 13,
"score": 4,
"particulars": "校前二"
},
{
"iid": 14,
"score": 3,
"particulars": "校前三"
},
{
"iid": 15,
"score": 1,
"particulars": "校優秀獎"
},
{
"iid": 16,
"score": 4,
"particulars": "院前一"
},
{
"iid": 17,
"score": 3,
"particulars": "院前二"
},
{
"iid": 18,
"score": 2,
"particulars": "院前三"
},
{
"iid": 19,
"score": 1,
"particulars": "院優秀獎"
}
]
json轉list代碼
public List<Particular> JsonToList(String str){
return getObjectList(str, Particular.class);
}
public static <T> List<T> getObjectList(String jsonString,Class<T> cls){
List<T> list = new ArrayList<T>();
try {
Gson gson = new Gson();
JsonArray arry = new JsonParser().parse(jsonString).getAsJsonArray();
for (JsonElement jsonElement : arry) {
list.add(gson.fromJson(jsonElement, cls));
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}