xml 문자열 과 자바 빈 의 상호 전환
5732 단어 springboot
그 때 는 정말 눈물 을 흘 리 고 싶 었 어 요. 이 걸 어떻게 만 들 었 어 요? 가끔 못 해 요 ~ ~
하지만 월급 을 위해 목숨 을 걸 었 다!
저 는 javax 테이프 의 주 해 를 사 용 했 습 니 다. 쓰기 좋 은 것 같 습 니 다. 간단 하고 편리 합 니 다. 왜 처음에는 잘 못 봤 는 지 모 르 겠 습 니 다 ~
먼저 인터넷 에서 찾 아 보고 도구 류 를 썼 습 니 다.
import java.io.StringReader;
import java.io.StringWriter;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
/**
*
* Class Name: XmlConvertUtil
* Description: xml
*
*/
public class XmlConvertUtil {
/**
* xml JavaBean
*
* @param xml xml
* @param t
* @return
* @throws Exception JAXBException
*/
@SuppressWarnings({ "unchecked" })
public static T convertToJavaBean(String xml, Class t) throws Exception {
T obj = null;
JAXBContext context = JAXBContext.newInstance(t);
Unmarshaller unmarshaller = context.createUnmarshaller();
obj = (T) unmarshaller.unmarshal(new StringReader(xml));
return obj;
}
/**
* JavaBean xml
* @param obj
* @param encoding
* @return
*/
public static String convertToXml(Object obj, String encoding) {
String result = null;
try {
JAXBContext context = JAXBContext.newInstance(obj.getClass());
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);
StringWriter writer = new StringWriter();
marshaller.marshal(obj, writer);
result = writer.toString();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
그 다음 에 대응 하 는 실체 류 입 니 다. 여기 서 저 는 마음 이 불편 한 곳 이 있 습 니 다. 여기 xml 은 3 층 으로 되 어 있 습 니 다. 저도 3 개의 실체 류 를 써 서 대응 해 야 합 니 다 ~ ~ ~
1. 층:
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "oa") //
public class RequestEntity {
@XmlElement // , @XmlAttribute
protected RequestBody informations; //
public RequestBody getInformations() {
return informations;
}
public void setInformations(RequestBody informations) {
this.informations = informations;
}
}
2. 층:
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "informations")
public class RequestBody{
@XmlElement(name="information") // name
public List information; //
public List getInformation() {
return information;
}
public void setInformation(List information) {
this.information = information;
}
}
3. 층, 즉 얻 고자 하 는 실체:
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import com.ly.cloud.news.po.NewsData;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "information")
public class NewsDataXMLVO {
@XmlAttribute
private String id;
@XmlAttribute
private String title;
@XmlAttribute
private String time;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
그리고 호출 할 수 있 습 니 다.
public static void main(String[] args) throws ClientProtocolException, IOException {
try {
/////////////////////// xml JavaBean ///////////////////////////
RequestEntity entity = convertToJavaBean(getNewsByTagId("ff80808105cda730010"),RequestEntity.class);
RequestBody body = entity.getInformations();
List xmlVo = body.getInformation();
for (NewsDataXMLVO newsDataXMLVO : xmlVo) {
System.out.println(newsDataXMLVO.getId() + " " + newsDataXMLVO.getTitle());
}
//////////////////////// xml JavaBean ///////////////////////////
/////////////////////// JavaBean xml ////////////////////////////
RequestBody body2 = new RequestBody();
body2.setInformation(xmlVo);
RequestEntity entity2 = new RequestEntity();
entity2.setInformations(body2);
String xml = convertToXml(entity2, "utf-8");
System.out.println("xml:" + xml);
/////////////////////// JavaBean xml ///////////////////////////
} catch (Exception e) {
e.printStackTrace();
}
}
ps: getNewsByTagId ("ff808105cda 730010") 는 원 격 으로 연결 하 는 방법 입 니 다. xml 형식의 String 문자열 을 되 돌려 줍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin Springboot -- 파트 14 사용 사례 REST로 전환하여 POST로 JSON으로 전환前回 前回 前回 記事 の は は で で で で で で を 使っ 使っ 使っ て て て て て リクエスト を を 受け取り 、 reqeustbody で 、 その リクエスト の ボディ ボディ を を 受け取り 、 関数 内部 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.