为了账号安全,请及时绑定邮箱和手机立即绑定

将 xml 映射到 Json

将 xml 映射到 Json

潇潇雨雨 2021-09-03 10:02:48
我想将 xml 转换为 JSON。示例:将以下 xml 转换为给定的 json。<header><students><info>    <name>student1</name>    <class>2</class></info><info><name>student2</name><class>3</class></info></students></header>JSON:{"header": {    "students": [        {            "name": "student1",            "class": "2"        },        {            "name": "student2",            "class": "3"        }    ]}}问题是,如何将元素转换为数组?
查看完整描述

3 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

将以下依赖项添加到您的应用程序:


<dependency>

    <groupId>org.json</groupId>

    <artifactId>json</artifactId>

    <version>20180813</version>

</dependency>

它提供了一种非常简单的方式将 XML 文档转换为 JSON 文档:


String xml = "<header>\n" +

             "  <students>\n" +

             "    <info>\n" +

             "      <name>student1</name>\n" +

             "      <class>2</class>\n" +

             "    </info>\n" +

             "    <info>\n" +

             "      <name>student2</name>\n" +

             "      <class>3</class>\n" +

             "    </info>\n" +

             "   </students>\n" +

             "</header>";


JSONObject json = XML.toJSONObject(xml);

System.out.println(json);

输出将是:


{"header":{"students":{"info":[{"name":"student1","class":2},{"name":"student2","class":3}]}}}

然后你可以执行一些操作:


JSONArray info = json.getJSONObject("header").getJSONObject("students").getJSONArray("info");

json.getJSONObject("header").put("students", info);

System.out.println(json);

您将获得所需的输出:


{"header":{"students":[{"name":"student1","class":2},{"name":"student2","class":3}]}}


查看完整回答
反对 回复 2021-09-03
?
侃侃无极

TA贡献2051条经验 获得超10个赞

我试图从您添加的 xml 字符串创建一个 jason。使用 c# 并能够获取 Jason 文件。您应该将 nuget 包 Newtonsoft.Json 添加到您的项目中。


 public void xmlToJason()

    {

        string xml = @"<header>

                        <students>

                        <info>

                            <name>student1</name>

                            <class>2</class>

                        </info>

                        <info>

                        <name>student2</name>

                        <class>3</class>

                        </info>

                        </students>

                        </header>";


        XmlDocument doc = new XmlDocument();

        doc.LoadXml(xml);


        string json = JsonConvert.SerializeXmlNode(doc);


        Console.WriteLine(json);

    }


查看完整回答
反对 回复 2021-09-03
  • 3 回答
  • 0 关注
  • 176 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信