json工具类——json-java和json-lib

用途:xml转换JSON

json-java

pom.xml

<dependency>
      <groupId>com.xliic</groupId>
      <artifactId>json-java</artifactId>
      <version>1.1</version>
</dependency>

JsonUtils.java

/* 使用JSON-JAVA提供的方法 */
 //将xml转为json
 JSONObject xmlJSONObj = XML.toJSONObject(xml);
 //设置缩进
 String jsonPrettyPrintString = xmlJSONObj.toString(4);
 //输出格式化后的json
 System.out.println(jsonPrettyPrintString);

json-lib

JsonUtils.java

/* 使用json-lib提供的方法 */
   //创建 XMLSerializer对象
   XMLSerializer xmlSerializer = new XMLSerializer();
   //将xml转为json(注:如果是元素的属性,会在json里的key前加一个@标识)
   String result = xmlSerializer.read(xml).toString();
   //输出json内容
   System.out.println(result);

Test.java

public class Test {
    public static void main(String[] args) {
        String xml = "<class id="
                + "'1'"
                + "><student><name>aaaaaa</name><age>21</age></student><student><name>bbbbbb</name><age>22</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);
 
    }

输出结果
JSON-java

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

最后补充一个JSON转xml的例子
JsonUtils.java

public static String json2xml(String json) {
        StringReader input = new StringReader(json);
        StringWriter output = new StringWriter();
        JsonXMLConfig config = new JsonXMLConfigBuilder().multiplePI(false).repairingNamespaces(false).build();
        try {
            XMLEventReader reader = new JsonXMLInputFactory(config).createXMLEventReader(input);
            XMLEventWriter writer = XMLOutputFactory.newInstance().createXMLEventWriter(output);
            writer = new PrettyXMLEventWriter(writer);
            writer.add(reader);
            reader.close();
            writer.close();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                output.close();
                input.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if (output.toString().length() >= 38) {// remove <?xml version="1.0" encoding="UTF-8"?>
            System.out.println(output.toString().substring(39));
            return output.toString().substring(39);
        }
        return output.toString();
    }

Test.java

public static void main(String[] args) {
        Json2Xml test = new Json2Xml();
        String json = "{\"student\":{\"name\":\"cherry\",\"id\":1,\"age\":666,\"desc\":{\"state\":777,"
                                                + "\"items\":{\"isTure\":\"ture\"}}}}";
        test.json2xml(json);
 }

效果图:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值