SpringBoot读取XML文件数据

创建一个需要读取的XML文件数据

<c c1="0">
    <d d1="101280101" d2="广州" d3="guangzhou" d4="广东"/>
    <d d1="101280102" d2="番禺" d3="panyu" d4="广东"/>
    <d d1="101280103" d2="从化" d3="conghua" d4="广东"/>
    <d d1="101280104" d2="增城" d3="zengcheng" d4="广东"/>
    <d d1="101280105" d2="花都" d3="huadu" d4="广东"/>
</c>

建立POJO对象,将XML数据转化为POJO对象数据

@Data
@AllArgsConstructor
@NoArgsConstructor
@XmlRootElement(name = "d")
@XmlAccessorType(XmlAccessType.FIELD)
public class City {
    @XmlAttribute(name = "d1")
    private String cityId;
    @XmlAttribute(name = "d2")
    private String cityName;
    @XmlAttribute(name = "d3")
    private String cityCode;
    @XmlAttribute(name = "d4")
    private String province;
}
  • @XmlRootElement申明Xml的根元素

  • @XmlAttribute申明Xml根元素中的属性名

  • @XmlAccessorType申明访问的类型是字段

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @XmlRootElement(name = “c”)
    @XmlAccessorType(XmlAccessType.FIELD)
    public class CityList {

    @XmlElement(name = "d")
    private List<City> cityLst;
    

    }

  • @XmlElement表示字段映射的Xml中的元素

创建一个XML解析工具类

public class XmlBuilder {

    /**
     * 将XML转为指定的POJO对象
     *
     * @param clazz 需要转换的类
     * @param xmlStr xml数据
     * @return
     */
    public static Object xmlStrToObject(Class<?> clazz, String xmlStr) throws Exception {
        Object xmlObject = null;
        Reader reader = null;
        //利用JAXBContext将类转为一个实例
        JAXBContext context = JAXBContext.newInstance(clazz);
        //XMl 转为对象的接口
        Unmarshaller unmarshaller = context.createUnmarshaller();
        reader = new StringReader(xmlStr);
        xmlObject = unmarshaller.unmarshal(reader);
        if (reader != null) {
            reader.close();
        }
        return xmlObject;
    }
}

创建接口和实现类

/**
 * 城市数据接口
 */
public interface CityDataService {

    List<City> listCity() throws Exception;
}

@Service
public class CityDataServiceImpl implements CityDataService {

    @Override
    public List<City> listCity() throws Exception {
        //读取Resource目录下的XML文件
        Resource resource = new ClassPathResource("cityList.xml");
        //利用输入流获取XML文件内容
        BufferedReader br = new BufferedReader(new InputStreamReader(resource.getInputStream(), "UTF-8"));
        StringBuffer buffer = new StringBuffer();
        String line = "";
        while ((line = br.readLine()) != null) {
            buffer.append(line);
        }
        br.close();
        //XML转为JAVA对象
        CityList cityList = (CityList) XmlBuilder.xmlStrToObject(CityList.class, buffer.toString());
        return cityList.getCityLst();
    }
}
Spring Boot 读写 JSON 文件通常涉及使用 Jackson 库,它是 Spring Boot 默认的 JSON 处理工具。在 Spring Boot 应用中,可以通过以下步骤来读写 JSON 文件: 1. 创建数据模型:首先定义 Java 类来表示 JSON 数据结构。Jackson 会自动将这些类的实例序列化为 JSON 格式,或者将 JSON 反序列化为这些类的实例。 ```java public class User { private String name; private int age; // getter 和 setter 方法 // 构造函数 } ``` 2. 自动配置:Spring Boot 会自动配置 Jackson,并将 Java 对象转换为 JSON 格式。因此,通常不需要额外的配置。 3. 写入 JSON 文件: - 使用 `ObjectMapper` 类的 `writeValue` 方法可以将 Java 对象写入到 JSON 文件中。 ```java import com.fasterxml.jackson.databind.ObjectMapper; import java.nio.file.Files; import java.nio.file.Paths; import java.io.IOException; // ... ObjectMapper objectMapper = new ObjectMapper(); User user = new User("张三", 30); // 将对象写入到指定的文件路径 objectMapper.writeValue(Paths.get("user.json").toFile(), user); ``` 4. 读取 JSON 文件: - 使用 `ObjectMapper` 类的 `readValue` 方法可以将 JSON 文件内容转换为 Java 对象。 ```java import com.fasterxml.jackson.databind.ObjectMapper; // ... ObjectMapper objectMapper = new ObjectMapper(); User user = objectMapper.readValue(new File("user.json"), User.class); ``` 确保在项目中加入了 Jackson 的依赖,如果你使用 Maven,可以在 `pom.xml` 文件中添加如下依赖: ```xml <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.13.0</version> </dependency> ``` 确保使用与项目匹配的版本号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值