当前位置: 首页 > 面试题库 >

将XML解析为JSON

姬墨竹
2023-03-14
问题内容

我有一个XML文件,例如

<stock><name>AXL</name><time>19-07</time><price>11.34</price></stock>
<stock><name>AIK</name><time>19-07</time><price>13.54</price></stock>
<stock><name>ALO</name><time>19-07</time><price>16.32</price></stock>
<stock><name>APO</name><time>19-07</time><price>13.56</price></stock>
...............more

如何将其解析为JSON结构文件?


问题答案:

对于一个简单的解决方案,我建议使用Jackson库,它是一个Java库,用于生成和读取带有XML扩展名的JSON,因为它只需几行简单的代码就可以将任意复杂的XML转换为JSON。

input.xml

<entries>
  <stock><name>AXL</name><time>19-07</time><price>11.34</price></stock>
  <stock><name>AIK</name><time>19-07</time><price>13.54</price></stock>
  <stock><name>ALO</name><time>19-07</time><price>16.32</price></stock>
  <stock><name>APO</name><time>19-07</time><price>13.56</price></stock>
</entries>

Java代码:

import java.io.File;
import java.util.List;

import org.codehaus.jackson.map.ObjectMapper;

import com.fasterxml.jackson.xml.XmlMapper;

public class Foo
{
  public static void main(String[] args) throws Exception
  {
    XmlMapper xmlMapper = new XmlMapper();
    List entries = xmlMapper.readValue(new File("input.xml"), List.class);

    ObjectMapper jsonMapper = new ObjectMapper();
    String json = jsonMapper.writeValueAsString(entries);
    System.out.println(json);
    // [{"name":"AXL","time":"19-07","price":"11.34"},{"name":"AIK","time":"19-07","price":"13.54"},{"name":"ALO","time":"19-07","price":"16.32"},{"name":"APO","time":"19-07","price":"13.56"}]
  }
}

该演示使用Jackson
1.7.7
(较新的1.7.8也可以使用),Jackson XML
Databind 0.5.3
(尚未与Jackson 1.8兼容)和Stax2
3.1.1



 类似资料:
  • 我有一些信息存储在XML中,我需要解析XML并将一些值存储在Hashmap中。以下是XML: 我想要的关键是:Room1和值:16.412094,48.19719(例如为部分ID=1) 这是第一部分的示例。我有100多个部分,所以我想像我在第一个示例中解释的那样为每个部分存储键和值。 输出为: 房间1: 16.412094,48.19719;房间2: 16.369865,48.199006; 房间

  • 问题内容: 我有一个要解析的xml示例 我想从此xml中编写一个方法,将该方法解析为键是字符串且值是字符串列表的hashmap。 例如:键“ detail a” value = {“ detail a的属性1”,“ detail a的属性2”,“ detail a的属性3”} 等等.. 做这个的最好方式是什么 ?因为我很困惑:\ 我走了这么远才能尝试打印detail-a和detail-b,但我还是

  • 问题内容: 因此,我坐在这里与Google Geocoder一起,后者通过’GOOGLE_URL / xml?address = input&sensor = false’返回XML。我需要使用Java来获取它,并将其解析为JSON对象并继续发送。 我将如何去做?(不,这不是家庭作业)请注意,最好在标准库中完成。目前,我正在尝试确定是否可以使用例如SAX来完成。 问题答案: 这是一个工作示例,显示

  • 问题内容: 我有一个看起来像这样的XML文件: 我想将其读入python对象,类似于字典列表。因为标记是绝对固定的,所以我很想使用正则表达式(我非常擅长使用那些正则表达式)。但是,我想我会检查是否有人知道如何在此处轻松避免使用正则表达式。我对SAX或其他解析没有太多经验,但是我愿意学习。 我期待向您展示如何在不使用regexes的情况下快速完成此操作。谢谢你的帮助! 问题答案: 如果您认为正则表达

  • 问题内容: 我正在尝试将以下feed解析为python中的ElementTree:“ http://smarkets.s3.amazonaws.com/oddsfeed.xml ”(警告大文件) 到目前为止,这是我尝试过的: 但是它似乎只是挂在上面,也许是无限地??(我知道这是一个大文件,但与我解析的其他非压缩提要相比似乎太长了,而这个大文件首先会扼杀gzip压缩带来的任何带宽增长)。 接下来我尝

  • 问题内容: Goodreads网站具有用于访问用户“货架”的API:https : //www.goodreads.com/review/list/20990068.xml? key=nGvCqaQ6tn9w4HNpW8kquw &v=2&shelf=toread 它返回XML。我正在尝试创建一个django项目,该项目通过此API在书架上显示书籍。我正在寻找一种方法(或者是否有比该方法更好的方法