小编man*_*ang的帖子

对象的XML序列化列表

查看有关XML序列化的Microsoft文章:

https://msdn.microsoft.com/zh-CN/library/58a18dwa.aspx

它们在“序列化对象数组”下给出了一个示例,如下所示:

public class PurchaseOrder
{
    public Item [] ItemsOrders
}

public class Item
{
    public string ItemID
    public decimal ItemPrice
}
Run Code Online (Sandbox Code Playgroud)

输出:

<PurchaseOrder>
    <Items>
        <Item>
            <ItemID>aaa111</ItemID>
            <ItemPrice>34.22</ItemPrice>
        </Item>
        <Item>
            <ItemID>bbb222</ItemID>
            <ItemPrice>2.89</ItemPrice>
        </Item>
    </Items>
</PurchaseOrder>
Run Code Online (Sandbox Code Playgroud)

困扰我的是“商品”标签。在我看来,仅“ Item”标签应该是“ PurchaseOrder”的子级。“项目”标签似乎不必要且令人困惑。我可能是错的。

有没有办法让这个例子像这样序列化:

<PurchaseOrder>
    <Item>
        <ItemID>aaa111</ItemID>
        <ItemPrice>34.22</ItemPrice>
    </Item>
    <Item>
        <ItemID>bbb222</ItemID>
        <ItemPrice>2.89</ItemPrice>
    </Item>
</PurchaseOrder>
Run Code Online (Sandbox Code Playgroud)

c# xml serialization xml-serialization

1
推荐指数
1
解决办法
4885
查看次数

java加密的字符串不能存储在DB中

尝试使用javax.crypto库加密字符串并将其存储在数据库(Oracle)中.我稍后需要解密这个字符串,所以我需要一个双向算法.

问题是数据库似乎不接受该方法创建的某些加密字符.我们正在将数据库迁移到新服务器之间.旧数据库使用US7ASCII字符集,而新数据库使用AL32UTF8.当我将加密的字符串放入数据库时​​,数据库只是将它们转换为US7ASCII数据库中的问号(?).它似乎在AL32UTF8数据库中存储得很好.

所以,我必须使这个交叉兼容.我在尝试使用getBytes()方法时尝试发送不同的StandardCharsets值,但似乎没有帮助.也许我错过了什么.我能以任何方式获得所需的结果吗?

这是我生成密文的代码.从StackOverflow上的另一篇文章修改

import java.io.PrintStream;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;

public class test
{

    public static void main(String[] args)
    throws Exception
    {
        //byte[] encryptionKey = "Es6XYPkgCV75J95Y".getBytes(StandardCharsets.UTF_8);
        byte[] encryptionKey = "Es6XYPkgCV75J95Y".getBytes(StandardCharsets.ISO_8859_1);
        //byte[] plainText = args[0].getBytes(StandardCharsets.UTF_8);
        byte[] plainText = args[0].getBytes(StandardCharsets.ISO_8859_1);
        MyCrypto aes = new MyCrypto(encryptionKey);
        byte[] cipherText = aes.encrypt(plainText);
        byte[] decryptedCipherText = aes.decrypt(cipherText);

        System.out.println(new String(plainText));
        System.out.println(new String(cipherText));
        System.out.println(new String(decryptedCipherText));
    }

}

class MyCrypto
{
    private byte[] key;

    private static final String ALGORITHM = "AES";

    public MyCrypto(byte[] key)
    {
        this.key = …
Run Code Online (Sandbox Code Playgroud)

java database oracle encryption

1
推荐指数
1
解决办法
384
查看次数