Tag: flatten

展平嵌套数组。 (JAVA)

我正在努力创建合适的逻辑来压扁arrays。 我基本上想要为嵌套数组中的每个子项复制父行。 嵌套数组的数量可能会有所不同。 我一直在创建Java列表bc我发现它们很容易使用,但对任何解决方案都是开放的。 这个问题的本质是我从一些嵌套的JSON开始,我想将它转换成一个平面的csv加载到数据库表中。 谢谢您的帮助。 例: [1,2,[A,B,[Cat,Dog]],3] 我已经将上面创建为List。 每个项目都是字符串或其他列表。 结果: [1,2,A,Cat,3], [1,2,A,Dog,3], [1,2,B,Cat,3], [1,2,B,Dog,3] 这是我到目前为止所拥有的。 显然不行。 private static List<List> processData(List row, List data, List<List> rowList) { List<List> tempRowList = new ArrayList<List>(); for (Object i : data) { if (i instanceof List) { flattenArray((List) i, row, rowList); } else { for (List r : rowList) […]

如何将JSON反序列化为平面,类似Map的结构?

请记住,JSON结构之前是未知的,即它完全是任意的,我们只知道它是JSON格式。 例如, 以下JSON { “Port”: { “@alias”: “defaultHttp”, “Enabled”: “true”, “Number”: “10092”, “Protocol”: “http”, “KeepAliveTimeout”: “20000”, “ThreadPool”: { “@enabled”: “false”, “Max”: “150”, “ThreadPriority”: “5” }, “ExtendedProperties”: { “Property”: [ { “@name”: “connectionTimeout”, “$”: “20000” } ] } } } 应该反序列化为具有键的类似Map的结构(为了简洁,不包括以上所有内容): port[0].alias port[0].enabled port[0].extendedProperties.connectionTimeout port[0].threadPool.max 我目前正在调查jackson,所以我们有: TypeReference<HashMap> typeRef = new TypeReference<HashMap>() {}; Map o = objectMapper.readValue(jsonString, […]

通过Java中的XSLT进行XML碎化

我需要转换具有表单嵌套(分层)结构的大型XML文件 Flat XML Hierarchical XML (multiple blocks, some repetitive) Flat XML 变为扁平(“粉碎”)forms,每个重复嵌套块有1个块。 数据具有许多不同的标签和层次结构变体(特别是在分层XML之前和之后的碎片XML的标签数量),因此理想情况下不应该对标签和属性名称或层次级别做出假设。 只有4个级别的层次结构的顶级视图看起来像 … … … A B … … … 然后会得到所需的输出 … … … A … … … … … … B … … … 也就是说,如果在每个级别i存在Li不同的组件,则将产生总共Product(Li)不同组件(仅上述2,因为唯一的区分因素是级别4,因此L1*L2*L3*L4 = 2 )。 从我所看到的,XSLT可能是要走的路,但任何其他解决方案(例如,StAX甚至JDOM)都可以。 使用虚构信息的更详细的例子将是 123 A Street 28 List of previous jobs in the US 3 […]