我想按照以下示例将xml转换为json: 示例XML:
$CloudServiceIp
预期的JSON输出:
Get-AzureService | Select-Object -Property ServiceName, `
@{Name='ProdIP';Expression={(Get-AzureDeployment -Slot Production `
-ServiceName $_.ServiceName).VirtualIPs[0].Address}} | Format-Table -AutoSize
请帮帮我。
答案 0 :(得分:0)
创建数据的类表示。然后使用像Jackson这样理解JSON和XML的对象映射器。从XML反序列化并序列化为JSON。
答案 1 :(得分:0)
如果您使用的是Java 8,那么您应该查看我的unXml - 库。它是开源的,可在Maven Central上找到。
此代码适用于您的项目
toJson()
请注意,此库的重点是使用Xpath从XML中提取值,并将它们分配给Json Objects中的属性。所以你可以创造更好的" Json,它与xml结构没那么紧密。
实施例
import com.nerdforge.unxml.Parsing;
import com.nerdforge.unxml.factory.ParsingFactory;
import org.w3c.dom.Document;
import java.util.List;
public class Parser {
public ObjectNode parseXml(String xml){
Parsing parsing = ParsingFactory.getInstance().create();
Document document = parsing.xml().document(xml);
Parser<ObjectNode> parser = parsing.obj("Details")
.attribute("Records", parsing.obj("Records")
.attribute("name", parsing.obj("name")
.attribute("@id", "@id")
.attribute("#text", "text()")
)
.attribute("age", "age")
.attribute("gender", parsing.obj("gender")
.attribute("@type", "@type")
)
)
.build();
ObjectNode result = parser.apply(document);
return result;
}
}
将返回json
public class Parser {
public ArrayNode parseXml(String xml){
Parsing parsing = ParsingFactory.getInstance().create();
Document document = parsing.xml().document(xml);
Parser<ArrayNode> parser = parsing.arr("//Records", parsing.obj()
.attribute("id", "name/@id", parsing.number())
.attribute("name") // name is both the xpath, and json-attribute key
.attribute("age", "age", parsing.number())
.attribute("gender", "gender/@type")
).build();
ArrayNode result = parser.apply(document);
return result;
}
}
使用[{
id: 123,
name: "xyz",
age: 25,
gender: "male"
}]
创建数组。