一、解析xml格式的字符串
/**
* @Author lwb
* @date 2018/5/30 11:19
*
* xml 解析之,json-java練習
*
*
* JSON解析
名稱:JSON-java
地址:https://github.com/stleary/JSON-java
API地址:http://stleary.github.io/JSON-java/index.html
*
*/
public class JsonJavaTest {
/**
* xml格式的字符串解析
*/
@Test
public void parseXmlString() {
String xmlString =
"<?xml version=\"1.0\"encoding=\"UTF-8\"?>"
+"<root>"
+"<data>"
+"<msgBody>"
+"<cirName>10GE0011_鄰水城南-袁市</cirName >"
+"<accessCode>LSDL0083</accessCode >"
+"<resOperatlon>1</resOperatlon >"
+"<flowType>1</flowType>"
+"<resultCode>1</resultCode>"
+"<resultDesc>配置成功</resultDesc>"
+"<message>波波</message>"
+"<message>花花</message>"
+"</msgBody>"
+"</data>"
+ "</root>";
//一層一層的獲取數據
/**
{
"root":{
"data":{
"msgBody":{
"cirName":"10GE0011_鄰水城南-袁市",
"accessCode":"LSDL0083",
"resultCode":1,
"resOperatlon":1,
"resultDesc":"配置成功",
"flowType":1
}
}
}
}
*/
//首先將xml格式的字符串轉換爲可以JSONObject對象,JSON 格式,傳入true ,則遇到數字和
//boolean值則不會自動轉換位數字和boolean值,否則將自動轉換。
JSONObject topData = XML.toJSONObject(xmlString,true);
//獲取root數據
JSONObject root = (JSONObject)topData.get("root");
// 獲取data數據
JSONObject data = (JSONObject)root.get("data");
//獲取megBody
JSONObject msgBody = (JSONObject)data.get("msgBody");
//最後結果,cirName爲字符串
String cirName = (String)msgBody.get("cirName");
String resOperatlon = (String)msgBody.get("resOperatlon");
System.out.println(resOperatlon);
//最後結果,message爲數組
JSONArray message = (JSONArray) msgBody.get("message");
System.out.println(message);//["波波","花花"]
}
/**
* 理解JSONObject類API
*/
@Test
public void JSONObjectAPITest() {
String xmlString =
"<?xml version=\"1.0\"encoding=\"UTF-8\"?>"
+"<root>"
+"<data>"
+"<msgBody>"
+"<cirName>10GE0011_鄰水城南-袁市</cirName >"
+"<accessCode>LSDL0083</accessCode >"
+"<resOperatlon>1</resOperatlon >"
+"<flowType>1</flowType>"
+"<resultCode>1</resultCode>"
+"<resultDesc>配置成功</resultDesc>"
+"<message>波波</message>"
+"<message>花花</message>"
+"</msgBody>"
+"</data>"
+ "</root>";
JSONObject jsonObject = XML.toJSONObject(xmlString);
String[] names = JSONObject.getNames(jsonObject);
for (String name:names) {
System.out.println(name);
}
}
}