Java 将从页面提取的数据写入Json文件
我正在从页面上的表中提取数据 我可以完美地提取数据,但我不知道如何以下面的格式写入Json 用于数据提取的Selenium代码:Java 将从页面提取的数据写入Json文件,java,json,parsing,Java,Json,Parsing,我正在从页面上的表中提取数据 我可以完美地提取数据,但我不知道如何以下面的格式写入Json 用于数据提取的Selenium代码: 最简单的方法可能是使用这些属性定义一个类indice etc,并在解析数据行时创建添加到列表中的实例,然后只需使用Gson或Jackson将对象列表转换为JSON,例如,最简单的方法可能是定义一个具有这些属性的类indice等,并在解析数据行时创建添加到列表中的实例,然后只需使用Gson或Jackson将对象列表转换为JSON,例如将对象映射到Java对象,那么克里斯
最简单的方法可能是使用这些属性定义一个类indice etc,并在解析数据行时创建添加到列表中的实例,然后只需使用Gson或Jackson将对象列表转换为JSON,例如,最简单的方法可能是定义一个具有这些属性的类indice等,并在解析数据行时创建添加到列表中的实例,然后只需使用Gson或Jackson将对象列表转换为JSON,例如将对象映射到Java对象,那么克里斯提到的使用杰克逊可能是最好的选择。我举了一个例子,说明你可以做什么: 以下是可以保存您的值的Java对象:
public class TableElement {
private String indice;
private String ultimo;
private String maxima;
private String minima;
private String variacao;
private String variacao2;
private String hora;
public String getIndice() {
return indice;
}
public void setIndice(String indice) {
this.indice = indice;
}
// Add all getters and setters ...
}
注意-需要getter和setter,因为jackson使用getter和setter从json检索/设置对象的值
实际上,将其映射到json将如下所示:
StockTable stockTable = new StockTable();
List<TableElement> stocks = new ArrayList<>();
TableElement tableElement = new TableElement();
tableElement.setIndice("Dow 30");
tableElement.setUltimo("23.185,62");
tableElement.setMaxima("23.189,76");
tableElement.setMinima("21.285,37");
tableElement.setVariacao("+1.985,00");
tableElement.setVariacao2("+9,36%");
tableElement.setHora("13/03");
TableElement tableElement2 = new TableElement();
tableElement2.setIndice("S&P 500 VIX");
tableElement2.setUltimo("23.185,62");
tableElement2.setMaxima("23.189,76");
tableElement2.setMinima("21.285,37");
tableElement2.setVariacao("+1.985,00");
tableElement2.setVariacao2("+9,36%");
tableElement2.setHora("13/03");
stocks.add(tableElement);
stocks.add(tableElement2);
ObjectMapper objectMapper = new ObjectMapper();
try {
System.out.println(objectMapper.writerWithDefaultPrettyPrinter()
.writeValueAsString(stocks));
} catch (JsonProcessingException e) {
e.printStackTrace();
}
[ {
"indice" : "Dow 30",
"ultimo" : "23.185,62",
"maxima" : "23.189,76",
"minima" : "21.285,37",
"variacao" : "+1.985,00",
"variacao2" : "+9,36%",
"hora" : "13/03"
}, {
"indice" : "S&P 500 VIX",
"ultimo" : "23.185,62",
"maxima" : "23.189,76",
"minima" : "21.285,37",
"variacao" : "+1.985,00",
"variacao2" : "+9,36%",
"hora" : "13/03"
} ]
将对象映射到Java对象,然后使用Chris提到的Jackson可能是最好的选择。我举了一个例子,说明你可以做什么: 以下是可以保存您的值的Java对象:
public class TableElement {
private String indice;
private String ultimo;
private String maxima;
private String minima;
private String variacao;
private String variacao2;
private String hora;
public String getIndice() {
return indice;
}
public void setIndice(String indice) {
this.indice = indice;
}
// Add all getters and setters ...
}
注意-需要getter和setter,因为jackson使用getter和setter从json检索/设置对象的值
实际上,将其映射到json将如下所示:
StockTable stockTable = new StockTable();
List<TableElement> stocks = new ArrayList<>();
TableElement tableElement = new TableElement();
tableElement.setIndice("Dow 30");
tableElement.setUltimo("23.185,62");
tableElement.setMaxima("23.189,76");
tableElement.setMinima("21.285,37");
tableElement.setVariacao("+1.985,00");
tableElement.setVariacao2("+9,36%");
tableElement.setHora("13/03");
TableElement tableElement2 = new TableElement();
tableElement2.setIndice("S&P 500 VIX");
tableElement2.setUltimo("23.185,62");
tableElement2.setMaxima("23.189,76");
tableElement2.setMinima("21.285,37");
tableElement2.setVariacao("+1.985,00");
tableElement2.setVariacao2("+9,36%");
tableElement2.setHora("13/03");
stocks.add(tableElement);
stocks.add(tableElement2);
ObjectMapper objectMapper = new ObjectMapper();
try {
System.out.println(objectMapper.writerWithDefaultPrettyPrinter()
.writeValueAsString(stocks));
} catch (JsonProcessingException e) {
e.printStackTrace();
}
[ {
"indice" : "Dow 30",
"ultimo" : "23.185,62",
"maxima" : "23.189,76",
"minima" : "21.285,37",
"variacao" : "+1.985,00",
"variacao2" : "+9,36%",
"hora" : "13/03"
}, {
"indice" : "S&P 500 VIX",
"ultimo" : "23.185,62",
"maxima" : "23.189,76",
"minima" : "21.285,37",
"variacao" : "+1.985,00",
"variacao2" : "+9,36%",
"hora" : "13/03"
} ]
假设您可以将这些属性有效地烘焙到代码中。如果您需要基于页面上的表标题的更具动态性的内容,那将是另一回事——如果您可以将这些属性有效地烘焙到代码中,请让我们知道是否是这样。如果您需要基于页面上的表标题的更具动态性的内容,那将是另一回事-如果是这样,请告诉我们