首页 > 解决方案 > 如何从 JavaObjects 的 ArrayList 创建具有自定义结构的 JSON 文件

问题描述

我有一个为 AWS DynamoDB 注释的对象的 ArrayList。

ArraList<LanguageItem> languageItem = new ArrayList<LanguageItem>();

如何将此 ArrayList 对象转换为自定义结构化 JSON 文件?

型号类:

@DynamoDBTable(tableName = "Language-Data")
public class LanguageItem {

    private String LANGUAGE;
    private String SK;
    private String COMPONENT_NAME;
    private String KEY;
    private String VALUE;

    public LanguageItem() {
    }

    public LanguageItem(String language, String sk, String component_name, String key, String value) {
        LANGUAGE = language;
        SK = sk;
        COMPONENT_NAME = component_name;
        KEY = key;
        VALUE = value;
    }

    @DynamoDBHashKey(attributeName = "LANGUAGE")
    public String getLANGUAGE() {
        return LANGUAGE;
    }

    @DynamoDBRangeKey(attributeName = "SK")
    public String getSK() {
        return SK;
    }

    @DynamoDBAttribute(attributeName = "COMPONENT_NAME")
    public String getCOMPONENT_NAME() {
        return this.COMPONENT_NAME;
    }

    @DynamoDBAttribute(attributeName = "KEY")
    public String getKEY() {
        return KEY;
    }

    @DynamoDBAttribute(attributeName = "VALUE")
    public String getVALUE() {
        return VALUE;
    }
    // remaining getters and setters
}

所需的 JSON 结构:

{
    "lang": "en",//this can be set without using the data from the ArrayList.
    "data": {
    "languageItem.COMPONENT_NAME": { 
            "languageItem.key": "languageItem.value",
            "languageItem.key": "languageItem.value",
            "languageItem.key": "languageItem.value"
        },
    "languageItem.COMPONENT_NAME": {  
            "languageItem.key": "languageItem.value",
            "languageItem.key": "languageItem.value",
            "languageItem.key": "languageItem.value"
        },
        ..........
    }
}

遍历 ArrayList 时,每个对象都有一个 COMPONENT_NAME。因此,名称将键设置为 COMPONENT_NAME,值将是另一个键值对的列表,其值 KEY 和 VALUE 具有共同的 COMPONET_NAME。

例如:所有组件名称为“A”的键、值数据将如下所示:

 "A" : { 
         "K1":"v1",
         "K2":"v2",
           ....
       },
        ......

标签: javajsonarraylistamazon-dynamodb

解决方案


推荐阅读