相关疑难解决方法(0)

如何使用Jackson对一系列对象进行反序列化

杰克逊的数据绑定的文档表明,杰克逊支持deserialising"所有支持类型的数组",但我想不通这个确切的语法.

对于单个对象,我会这样做:

//json input
{
    "id" : "junk",
    "stuff" : "things"
}

//Java
MyClass instance = objectMapper.readValue(json, MyClass.class);
Run Code Online (Sandbox Code Playgroud)

现在对于一个数组我想这样做:

//json input
[{
    "id" : "junk",
    "stuff" : "things"
},
{
    "id" : "spam",
    "stuff" : "eggs"
}]

//Java
List<MyClass> entries = ?
Run Code Online (Sandbox Code Playgroud)

有人知道是否有一个神奇的缺失命令?如果没有那么解决方案是什么?

java json jackson

711
推荐指数
9
解决办法
56万
查看次数

在Java中将JSON转换为XML

我是json的新手.我有一个程序从json对象生成xml.

String str = "{'name':'JSON','integer':1,'double':2.0,'boolean':true,'nested':{'id':42},'array':[1,2,3]}";  
    JSON json = JSONSerializer.toJSON( str );  
    XMLSerializer xmlSerializer = new XMLSerializer();  
    xmlSerializer.setTypeHintsCompatibility( false );  
    String xml = xmlSerializer.write( json );  
    System.out.println(xml); 
Run Code Online (Sandbox Code Playgroud)

输出是:

<?xml version="1.0" encoding="UTF-8"?>
<o><array json_class="array"><e json_type="number">1</e><e json_type="number">2</e><e json_type="number">3</e></array><boolean json_type="boolean">true</boolean><double json_type="number">2.0</double><integer json_type="number">1</integer><name json_type="string">JSON</name><nested json_class="object"><id json_type="number">42</id></nested></o>
Run Code Online (Sandbox Code Playgroud)

我最大的问题是如何编写自己的属性而不是json_type ="number",还要编写自己的子元素.

java xml xpath json

51
推荐指数
3
解决办法
17万
查看次数

杰克逊:使用列表反序列化来映射XML

有没有办法使用Jackson将以下xml反序列化为Map holding项目列表?

<order>
    <number>12345678</number>
    <amount>100.10</amount>
    <items>
        <item>
            <itemId>123</itemId>
            <amount>100.0</amount>
            <itemName>Item Name1</itemName>
        </item>
        <item>
            <itemId>234</itemId>
            <amount>200.00</amount>
            <itemName>Item Name1</itemName>
        </item>
    </items>
</order>
Run Code Online (Sandbox Code Playgroud)

我试过了

XmlMapper mapper = new XmlMapper();
LinkedHashMap map = (LinkedHashMap)mapper.readValue(xml, Object.class);
Run Code Online (Sandbox Code Playgroud)

并获得以下地图.列表中的第一项缺失.

{
    order={
        number=12345678,
        amount=100.1,
        items={
            item={
                amount=200.0,
                itemName=ItemName2,
                itemId=234
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

xml serialization jackson

11
推荐指数
2
解决办法
2272
查看次数

标签 统计

jackson ×2

java ×2

json ×2

xml ×2

serialization ×1

xpath ×1