Java8からS3に配置したJSONファイルを読み取る

Java8からS3に配置したJSONファイルを読み取る

Java8からS3に配置したJSONファイルを読み込んでみます。読み込むファイルはa.jsonとします。

a.json

{
"key1": {
"key2": "test2",
"key3": "test3"
}
}

view raw
gistfile1.txt
hosted with ❤ by GitHub

bucket名はconfrageとしておきます。

S3ObjectInputStreamクラスのインスタンスをObjectMapper#readValueメソッドの第一引数に渡します。第二引数はnew TypeReference<Map<String, Object>>() {}にします。

これでMap<String, Object>が返ります。

以下、サンプルソースです。

package jp.co.confrage.samples;
import java.io.IOException;
import java.util.Map;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.GetObjectRequest;
import com.amazonaws.services.s3.model.S3Object;
import com.amazonaws.services.s3.model.S3ObjectInputStream;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class Sample {
@SuppressWarnings("unchecked")
public static void main(String[] args)
throws JsonParseException, JsonMappingException, IOException {
AWSCredentials credentials = new ProfileCredentialsProvider("default").getCredentials();
AmazonS3 s3 =
AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withRegion("ap-northeast-1")
.build();
String bucketName = "confrage";
String objectkey = "a.json";
S3Object object = s3.getObject(new GetObjectRequest(bucketName, objectkey));
S3ObjectInputStream s3Stream = object.getObjectContent();
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Object> inputJsonMap =
objectMapper.readValue(s3Stream, new TypeReference<Map<String, Object>>() {});
Map<String, Object> key = (Map<String, Object>) inputJsonMap.get("key1"); // 読み込む
String key2 = (String) key.get("key2");
String key3 = (String) key.get("key3");
System.out.println(key2); // test2
System.out.println(key3); // test3
}
}

view raw
gistfile1.txt
hosted with ❤ by GitHub

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA