gpt4 book ai didi

json - 使用 GSON 将 JSON 解析为 Java POJO

转载 作者:行者123 更新时间:2023-12-04 11:30:57 25 4
gpt4 key购买 nike

我在这里有一个非常直接的问题。我需要从 API 获取 JSON 并将其转换为我为它们创建的对象。

到目前为止,它会将它们反序列化到我的 List 中,但每个 Metric 对象都有空值

JSON 进来

{
"metrics": [
{
"metric": {
"type": 1,
"name": "slide-11-start",
"value": "1287249598295",
"sessionID": ""
}
},
{
"metric": {
"type": 1,
"name": "slide-21-start",
"value": "1287249601368",
"sessionID": ""
}
},
{
"metric": {
"type": 7,
"name": "resolution",
"value": "1680x1050",
"sessionID": ""
}
},
{
"metric": {
"type": 6,
"name": "OS",
"value": "Linux",
"sessionID": ""
}
},
{
"metric": {
"type": 5,
"name": "browser",
"value": "Netscape",
"sessionID": ""
}
}
]

}

度量对象
public class Metric {

private int type;
private String name;
private String value;
private String sessionID;

/**
* @return the type
*/
public int getType() {
return type;
}

/**
* @param type the type to set
*/
public void setType(int type) {
this.type = type;
}

/**
* @return the name
*/
public String getName() {
return name;
}

/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}

/**
* @return the value
*/
public String getValue() {
return value;
}

/**
* @param value the value to set
*/
public void setValue(String value) {
this.value = value;
}

/**
* @return the sessionID
*/
public String getSessionID() {
return sessionID;
}

/**
* @param sessionID the sessionID to set
*/
public void setSessionID(String sessionID) {
this.sessionID = sessionID;
}

}

容器对象
import java.util.List;

/**
*
* @author joshua
*/
public class MetricSet {

private List<Metric> metrics;

/**
* @return the metrics
*/
public List<Metric> getMetrics() {
return metrics;
}

/**
* @param metrics the metrics to set
*/
public void setMetrics(List<Metric> metrics) {
this.metrics = metrics;
}
}

转换 JSON 的代码
    String json = "";
if(request.getParameter("data") != null) {
json = request.getParameter("data");
}

MetricSet metrics = new MetricSet();

try {
Gson gson = new Gson();
Type listType = new TypeToken<MetricSet>() {}.getType();
metrics = gson.fromJson(json, MetricSet.class);
}
catch(Exception ex) {
String msg = ex.toString();
}

最佳答案

您可以为 JSON 对象创建相应的 java 类。 integer , string值可以按原样映射。 JSON 可以这样解析:

 Gson gson = new GsonBuilder().create();
Response r = gson.fromJson(jsonString, Response.class);

这是一个例子: http://rowsandcolumns.blogspot.com/2013/02/url-encode-http-get-solr-request-and.html

关于json - 使用 GSON 将 JSON 解析为 Java POJO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3949986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com