java - 创建 JSON 文件,在 Java 中序列化类

标签 java json pdf serialization

我有以下类(class):

public class PDFValues {
    private String value;
    private int xPos;
    private int yPos;

    public PDFValues(){

    }

    public PDFValues(String value, int x, int y){
        this.setValue(value);
        this.setX(x);
        this.setY(y);
    }

    public void setValue(String value){
        this.value = value;
    }

    public void setX(int x){
        this.xPos = x;
    }

    public void setY(int y){
        this.yPos = y;
    }

    public String getValue(){
        return this.value;
    }

    public int getX(){
        return this.xPos;
    }

    public int getY(){
        return this.yPos;
    }
}

然后我想这样做:

public class PDFtoJSONTest {    

    public static void main(String[] args) {
        List<PDFValues> listaElementos = new ArrayList<PDFValues>();

        listaElementos.add(new PDFValues("Anubis Lockward Botello",
                           new Integer(100), new Integer(633)));

        ....more code

    }

}

我想做的是将所有 PDFValues 保存在 ArrayList 中,作为 JSON 文件,但我不知道如何使其自动,我想到序列化对象或其他东西,但我找不到对此的解决方案,我不确定如何使 PDFValues 对象可序列化。

我想这样做是为了将这些值保存在 JSON 文件中,然后将它们用作属性来生成 PDF 文件,我使用 PDFBox 来生成 PDF 文件,使用 SimpleJSON 来生成 .json 文件。

我正在开展一个项目,我必须从一些处理过的数据中生成数千个 pdf 文件。我已经成功解析了包含大约 500+ MB 文本的数据,并保存了大约 5000 份需要生成 PDF 格式的账户报表。

问题是,由于PDF中生成文本数据,需要向PDFValues指示字符串中起始字符的位置,生成PDFTextInfo对象,然后将其添加到PDF中,文件将需要包含图像、文本和其他内容。

注意:如果有更好的方法来完成我想要做的事情,我愿意接受建议,但我也想知道我想要做的事情的答案,并知道它是否有效或不,以及为什么这两种情况。

我想让我的代码尽可能快,现在我能够在 2 分钟内将整个 TXT 文件从 RAW 处理为大部分干净的数据,我知道它可能会被优化,但现在还没有重点:D

我想尽快生成 PDF 文件,但我已经在 J​​ava 中使用该项目大约 1 1/2 个月了,而且我只了解了 JSON 和 PDF 文件生成过去一周...处理 JSON 文件已经三天了,我有点迷失了。

这是我试图完成的 JSON 文件的文件输出示例,这个示例是我手动生成的,我设法读取和处理该文件,现在我尝试自动生成它:

{ “标题”:{ “全名”: { "Name":"阿努比斯·洛克沃德·博特洛", “水平”:180, “垂直”:633 }, ......更多元素...... } }

正如你所看到的,我试图将 pdf 文件上的元素划分为面板,例如标题、余额、交易等,并构建 PDF 文件,就像它们是拼图的碎片一样,但是现在我正在尝试在标题上“构建”名称元素。

最佳答案

我猜想有一种比编写然后重新读取文件更好的方法来构建 PDF 文件,但我可以为您的 JSON 问题提供一个答案。

使用 Apache commons-lang3库并查看ToStringBuilder。然后,您可以在对象上定义 toString() 方法并使用内置的 ToStringStyle.JSON_STYLE 格式。然后,您必须将 PDFValues 列表包装在其他一些对象中,该对象可以存储 Header、FullName 等的 PDFValue。

    @Override
public String toString() {

    return new ToStringBuilder(this, ToStringStyle.JSON_STYLE)
            .append("Name", value)
            .append("Horizontal", xPos)
            .append("Vertical", yPos)

            .toString();
}

我应该注意,您可以输入 Jackson或类似的库,使用所需的 JsonProperty 注释来注释您的对象,并使用该库将您的对象序列化为 JSON,就像 REST 或类似库一样。但是,对于像您这样的简单用例,ToStringBuilder 既简单又有效。

关于java - 创建 JSON 文件,在 Java 中序列化类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38334941/

相关文章:

c# - 如何在 Unity3D 中将类对象转换为 JSON 字符串?

json - Kafka JDBC Sink Connector 对于具有可选字段的模式的消息给出空指针异常

java - 如何使用 iText 为我的 (pdf-) 文本添加背景颜色以使用 Java 创建它

java - 使用 Joda-Time 的语言环境的一周开始

json - 两个 Api 调用,具有不同的 JSON 响应。如何将它们输入到不同的结构中,但在 Golang 中重新排列它们几乎相同?

c# - 元素不允许错误 itextSharp

pdf - 使用 iText 检测动态 XFA

java - 使用Xero的Java SDK支持多个私有(private)应用程序的身份验证?

Java RogueLike视线问题

Java AES 字符串解密 "given final block not properly padded"