【发布时间】:2020-02-27 23:34:59
【问题描述】:
我需要解析存储在一个巨大的 json 文档中的维基百科文章列表。
json文件中的文章结构为:
{"id": "", "revid": "", "url":"", "title": "", "text": "..."}
我没有对象的名称,因此我在 java 中解析它时遇到了一些问题。
一些建议?
【问题讨论】:
-
使用 JSON 库;在 Google 上搜索一个。
我需要解析存储在一个巨大的 json 文档中的维基百科文章列表。
json文件中的文章结构为:
{"id": "", "revid": "", "url":"", "title": "", "text": "..."}
我没有对象的名称,因此我在 java 中解析它时遇到了一些问题。
一些建议?
【问题讨论】:
你可以随意命名类。在该课程中,您不必映射每个字段,但您可以。重要的是具有与 JSON 文件中相同的字段名称和类型
例如
public class Article {
private String id;
private String url;
private String title;
private String text;
//getters & setters
}
【讨论】:
这里有一个适合你的方法:
package com.json;
import java.io.IOException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonToObject {
public static void main(String[] args){
ObjectMapper mapper = new ObjectMapper();
String json = "{\"id\": \"AF98037\", \"action\": \"UPDATE\", \"activated_at\": \"2020-01-24T03:37:44.951Z\", \"address_contact\": \" \", \"age\": 0}";
try {
ParsedJson gi = mapper.readValue(json, ParsedJson.class);
System.out.println(gi.getAction());
System.out.println(gi.getId());
System.out.println(gi.getAge());
} catch (IOException e) {
e.printStackTrace();
}
}
}
ParsedJson.class
package com.json;
public class ParsedJson {
private String action;
private String id;
private String alt;
private Integer age;
private String address_contact;
private String activated_at;
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getAlt() {
return alt;
}
public void setAlt(String alt) {
this.alt = alt;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getAddress_contact() {
return address_contact;
}
public void setAddress_contact(String address_contact) {
this.address_contact = address_contact;
}
public String getActivated_at() {
return activated_at;
}
public void setActivated_at(String activated_at) {
this.activated_at = activated_at;
}
}
【讨论】: