1

我的要求是从 json 文件中读取数据并使用 dynamoDB 中存在的对象在 dynamoDB 中创建项目,例如考虑以下文件

{
    "ISA": {
        "isa01_name": "00",
        "isa02": "          ",
        "isa03": "00",
        "isa04": "          ",
        "isa05": "ZZ",
        "isa06": "CLEARCUT       ",
        "isa07": "ZZ",
        "isa08": "CMSENCOUNTERCTR",
        "isa09": "120109",
        "isa10": "1530",
        "isa11": "U",
        "isa12": "00501",
        "isa13": "012412627",
        "isa14": "0",
        "isa15": "T",
        "isa16": ":"
    },
    "GS": {
        "gs02": "352091331",
        "gs04": "20170109",
        "gs06": "146823",
        "gs03": "00580",
        "gs05": "1530",
        "gs01": "HC",
        "gs08": "005010X222A1",
        "gs07": "X"
    },
    "ST": {
        "ST03_1705_Implementation Convention Reference": "005010X222A1",
        "ST01_143_Transaction Set Identifier Code": "837",
        "ST02_329_Transaction Set Control Number": "50138"
    }
}

当我阅读这个文件时,它必须在 dynamodb 数据库中创建 ISA、GS、ST 项目。同样,如果读取具有不同对象的另一个文件,则也必须为它们创建项目。

以下是我现在拥有的代码。

`import java.io.File;
 import java.util.Iterator;
 import com.amazonaws.client.builder.AwsClientBuilder;
 import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
 import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder;
 import com.amazonaws.services.dynamodbv2.document.DynamoDB; 
 import com.amazonaws.services.dynamodbv2.document.Item;
 import com.amazonaws.services.dynamodbv2.document.Table; 
 import com.fasterxml.jackson.core.JsonFactory;
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;

  public class LoadData {


public static void main(String ards[]) throws Exception {

    AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard()
        .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("http://localhost:8000", "us-west-2"))
        .build();

    DynamoDB dynamoDB = new DynamoDB(client);

    Table table = dynamoDB.getTable("NewTable");


    JsonParser parser = new JsonFactory().createParser(new File("C:\\Users\\Nikhil yadav\\Downloads\\healthclaims\\healthclaims\\src\\main\\resources\\output\\ValidJson.json"));

    JsonNode rootNode = new ObjectMapper().readTree(parser);
    Iterator<JsonNode> iter = rootNode.iterator();

    ObjectNode currentNode;

    while (iter.hasNext()) {
        currentNode = (ObjectNode) iter.next();


        try {
            table.putItem(new Item().withPrimaryKey("ISA", currentNode.path("ISA").toString().replaceAll("[^:a-zA-Z0-9_-|]", " "))
                    .withString("GS",currentNode.path("GS").toString().replaceAll("[^:a-zA-Z0-9_-|]", " "))
                    .withString("ST", currentNode.path("ST").toString().replaceAll("[^:a-zA-Z0-9_-|]", " "))


                    );
            System.out.println("PutItem succeeded: ");

        }
        catch (Exception e) {

            System.err.println("Unable to add : ");
            System.err.println(e.getMessage());
            break;
        }
    }
    parser.close();
}
}
 `

它只接受具有 ISA、GS 和 ST 对象的文件,但我想要接受所有类型的 json 文件对象的程序。

我希望我的问题很清楚。我是发布问题的新手,如果不清楚,请忽略。

4

0 回答 0