资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

go语言xml转json,go解析xml

如何把xml转成json对象,底层代码

使用json-lib的XMLSerializer对象

成都创新互联是少有的成都做网站、网站制作、成都外贸网站建设、营销型企业网站、微信小程序定制开发、手机APP,开发、制作、设计、友情链接、推广优化一站式服务网络公司,成立于2013年,坚持透明化,价格低,无套路经营理念。让网页惊喜每一位访客多年来深受用户好评

(1)创建XMLSerializer对象

(2)使用XMLSerializer的read(xml)方法即可

[java] view plain copy

/* 第二种方法,使用json-lib提供的方法 */

//创建 XMLSerializer对象

XMLSerializer xmlSerializer = new XMLSerializer();

//将xml转为json(注:如果是元素的属性,会在json里的key前加一个@标识)

String result = xmlSerializer.read(xml).toString();

//输出json内容

System.out.println(result);

3.测试

[java] view plain copy

public class Test {

public static void main(String[] args) {

String xml = "class id="

+ "'1'"

+ "studentnameaaaaaa/nameage21/age/studentstudentnamebbbbbb/nameage22/age/student/class";

/* 第一种方法,使用JSON-JAVA提供的方法 */

//将xml转为json

JSONObject xmlJSONObj = XML.toJSONObject(xml);

//设置缩进

String jsonPrettyPrintString = xmlJSONObj.toString(4);

//输出格式化后的json

System.out.println(jsonPrettyPrintString);

/* 第二种方法,使用json-lib提供的方法 */

//创建 XMLSerializer对象

XMLSerializer xmlSerializer = new XMLSerializer();

//将xml转为json(注:如果是元素的属性,会在json里的key前加一个@标识)

String result = xmlSerializer.read(xml).toString();

//输出json内容

System.out.println(result);

}

第一种方法输出:

[java] view plain copy

{"class": {

"id": 1,

"student": [

{

"age": 21,

"name": "aaaaaa"

},

{

"age": 22,

"name": "bbbbbb"

}

]

}}

第二种方法输出:

[java] view plain copy

{"@id":"1","student":[{"name":"aaaaaa","age":"21"},{"name":"bbbbbb","age":"22"}]}

如何将xml的字符串转换为json

放上maven依赖

dependency

groupIdorg.json/groupId

artifactIdjson/artifactId

version20151123/version

/dependency

xml字符串转换为json字符串代码实现如下:

import org.json.JSONException;

import org.json.JSONObject;

import org.json.XML;

public class JsonUtils {

public static String xml2jsonString(String xml)throws JSONException{

JSONObject xmlJSONObj = XML.toJSONObject(xml);

return xmlJSONObj.toString();

}

}

json字符串转换为json对象代码实现如下:

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONObject;

JSONObject jsonObject = null;

try{

jsonObject = JSON.parseObject(jsonString);

}catch(Exception e){

logger.error("json串转json对象时发生异常,json串="+jsonString);

throw new RuntimeException("json串转json对象时发生异常,json串="+jsonString,e);

}

return jsonObject;

不过org.json有个问题比较麻烦,xml如下所示:

?xml version="1.0" encoding="gb2312"?

payUnitinfo

err_msg/err_msg

retcode1/retcode

payUnits

payUnit

provinceIdv1955/provinceId

cityIdv1961/cityId

payProjectIdc2680/payProjectId

payUnitIdv96564/payUnitId

payUnitName浙江省电费/payUnitName

/payUnit

payUnit

provinceIdv1955/provinceId

cityIdv1961/cityId

payProjectIdc2680/payProjectId

payUnitIdv85002/payUnitId

payUnitName国网浙江省电力公司/payUnitName

/payUnit

/payUnits

/payUnitinfo

当xml中出现多个payUnit时,org.json将xml中的payUnit转换为json数组格式的字符串,当只有一个payUnit时,org.json将xml中的payUnit转换为json对象格式的字符串。

假设jsonObject是上述xml转换为json对象后的变量,则通过以下方式获取:

JSONObject payUnitsJsonObject = jsonObject.getJSONObject("payUnitinfo").getJSONObject("payUnits");

JSONObject payUnitJsonObject = null;

JSONArray payUnitJsonArray = null;

Object payUnitObject = payUnitsJsonObject.get("payUnit");

if(payUnitObject instanceof JSONObject){

payUnitJsonObject = (JSONObject)payUnitObject;

}else if(payUnitObject instanceof JSONArray){

payUnitJsonArray = (JSONArray)payUnitObject;

}

如何将XML文档转换为JSON格式

之所以使用JSON一般是为了跳过XML这个过程,使JAVA类型到客户端的javascript类型可以不需要再解析XML就直接生成.为什么会从XML转换成json?

个人建议是通过Java解析XML,生成JavaBean或者其它类型的java对象,然后使用GSON,将java对象转化成json.GSON是google开发的一个包,小巧而功能强大,可定制性也很强,推荐使用.

这个XML转为json怎么写?

其实这个应该没有什么标准答案啦,只要写成的格式前台或者后台按照这个格式解析就可以啦,比如

[{'title':'programming','price':'$4.00','name':'C++'}],

这是一条信息,如果多条就用逗号隔开如:

[{'title':'programming','price':'$4.00','name':'C++'},{'title':'programming','price':'$4.00','name':'C++'},]]

有的情况用单引号或者双引号都可,有时只能用双引号好像,记不清了

如何把XML格式转换成JSON-CSDN论坛

网站可以直接转:

如果是代码中使用,可以读取xml文件转成对象后,再用newtonsoft.json转成json对象


名称栏目:go语言xml转json,go解析xml
当前链接:http://cdkjz.cn/article/hdhiec.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220