有关json和xml报文的解析和构造

时间:2022-08-09 20:18:30
对xml的解析


一、获取document


SAXReader reader = new SAXRader();
Document document = reader.read(new File("saop.xml"));


二、对xml的节点对象的操作方法:


1.获取xml的根节点


Element root = document.getRootElement();


2.获取弄个节点的子节点方法
Element element = node.element("产品部");


3.获取节点的文字
node.getText();


4.获取某个节点下所有名为"serviceCode"的子节点,并遍历
List nodes = rootEle.elements("ServiceCode");
for(Iterator it = nodes.iterator(); it.hasNext();){
Element elem = (Element) it.next();
}


5.对某节点的所有子节点进行遍历(迭代遍历)
for(Iterator it = root.elementIterator(); it.hasNext();){
Element element = (Element) it.next();
}


6.给某个节点添加子节点
Element elem = newElem.addElement("BusCode");
elem.setText("");


7.删除某个节点
parentElement.remove(childElement);


8.添加一个CDATA节点
Element contentElm = infoElm.addElement("content");contentElm.addCDATA(“cdata区域”); 


三、对节点对象的属性操作方法


1.获取节点的属性
Element root = document.getRootElement();
Attribute attribute = root.attribute("id");
attribute.getText();
root.remove(root.attribute("name")); 


2.设置节点的属性和文字
newMemberElem.addAttribute("name","名字")




对xml的构造


一、创建文档的根节点
两种方法:第一种:document = DocumentHelper.createDocument();
     Element root = DocumentHelper.createElement("SAOP");
   document.setRootElement(root);
2.第二种:Element root = DocumentHelper.createElement("SAOP");
 Document document = DocumentHelper.createDocument(root);


二。给节点添加属性;
root.addAttribute("key1","value1").addAttribute("key2","value2")


三、给节点添加孩子节点
Element element1 = rood.addElement("产品部");
element2 = element1.addElement("成员").addAttribute("key1","value1").addText("");
element2.addElement("").addText("");


四、构造样式输出编码和格式
OutputFormat format = new OutPutFormat("    ",true);//"    "为默认四个字节的缩进,true代表子节点 换行
format.setEncoding("GBK");
XMLWriter xmlWriter = new XMLWriter(new fileOutputStream("SAOP.xml"), format);
xmlWriter.write(document);
xmlWriter.close();//xmlWriter.flush();






json的数据转换和解析


一、 List集合转成json方法


List list = new ArrayList();
list.add( "first" );
list.add( "second" );
JSONArray jsonArray2 = JSONArray.fromObject( list );
 


二、 Map集合转换成json方法


Map map = new HashMap();
map.put("name", "json");
map.put("bool", Boolean.TRUE);
map.put("int", new Integer(1));
map.put("arr", new String[] { "p_code", "h_code" });
map.put("func", "function(i){ return this.arr[i]; }");
JSONObject json = JSONObject.fromObject(map);


三、 Bean转换成json代码


JSONObject jsonObject = JSONObject.fromObject(new JsonBean());


四、 数组转换成json代码


boolean[] boolArray = new boolean[] { true, false, true };
JSONArray jsonArray1 = JSONArray.fromObject(boolArray);


五、 一般数据转换成json代码


JSONArray jsonArray3 = JSONArray.fromObject("['json','serviceCode','busCode']" );


六、 beans转换成json代码


List list = new ArrayList();
JsonBean2 jb1 = new JsonBean2();
jb1.setCol(1);
jb1.setRow(1);
jb1.setValue("xx");


JsonBean2 jb2 = new JsonBean2();
jb2.setCol(2);
jb2.setRow(2);
jb2.setValue("");


list.add(jb1);
list.add(jb2);
JSONArray ja = JSONArray.fromObject(list);


json解析的实例




public String jsonParse() throws JSONException{

}