java json与xml转换_JSON与XML转换

这两天处理模块的联调工作,在json与XML转换中出现了一些奇怪的问题,仔细究来,实为对org.json.*包知之太少。

晚上baidu、google一下,找出了问题出现的原因。

在模块中,使用了两个方法,xml2Json()和json2Xml(),主要的问题就出在这两个方法的具体实现上。

XML与JSON相互转换的Java类在org.json.*包中常用的有XML.java和JSONML.java,前一半时间花在了json格式与XML生成

格式的验证上,json数据串格式没有错,只是在转换的时候需要在行尾添加“;”以表示结束。后一半时间花在格式的匹配

上,查阅XML.java和JSONML.java的API,JSONML的toString(JSONObject jo)方法有如下描述:

Reverse the JSONML transformation, making an XML text from a JSONObject. The

JSONObject must contain a "tagName" property. If it has children, then it must have a

"childNodes" property containing an array of objects. The other properties are attributes

with string values.

而XML.java的toString(Object o)方法描述如下:Convert a JSONObject into a well-formed, element-normal XML

string.它与JSONML的toString()方法相比,形式更通用化,可表示如:"BATCH_TYPE":{"type":"int","content":1}.

如果用JSONML类去处理,生成的json串为:{"childNodes":[1],"type":"int","tagName":"BATCH_TYPE"}。恰如JSONML的

toString所描述的:转换出的json对象必须包含tagName属性,他的子节点必须用childNodes形式表示,其它的属性用字符

串形式的值。

附:

//通过xml获取对应的json串,

private static String xml2Json(String xml)throws JSONException{

JSONObject job = JSONML.toJSONObject(xml);

String rs = job.toString();

return rs;

}

//将json串转换为xml,

private static String json2Xml(String jsonStr) throws JSONException{

JSONObject job = new JSONObject(jsonStr+";");

String jsonXML = (String)JSONML.toString(job);

return jsonXML;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值