0

http://aws.amazon.com/ec2/pricing/pricing-ebs-optimized-instances.jsonから価格情報を読んでいます。以下は、それを取得するためのコード例です。

public class SampleJson
{

@SuppressWarnings("unchecked")
public static void main(String[] args) throws Exception
{

    String json = readUrl("http://aws.amazon.com/ec2/pricing/pricing-ebs-optimized-instances.json");

    Type collectionType = new TypeToken<EBS>()
    {
    }.getType();

    EBS ebs = (EBS) new Gson().fromJson(json, collectionType);

    Config config = ebs.getConfig();

    ArrayList<StringMap<Regions>> region = (ArrayList<StringMap<Regions>>) config.getRegions();
    for (StringMap<Regions> regObj : region)
    {
        Set<Entry<String, Regions>> reg = regObj.entrySet();

        for (Map.Entry<String, Regions> data : reg)
        {
            Object key = data.getKey();
            Object value = data.getValue();

            System.out.print(key + ": ");
            System.out.println(value);

        }



    }

}

private static String readUrl(String urlString) throws Exception
{
    BufferedReader reader = null;
    try
    {
        URL url = new URL(urlString);
        reader = new BufferedReader(new InputStreamReader(url.openStream()));
        StringBuffer buffer = new StringBuffer();
        int read;
        char[] chars = new char[1024];
        while ((read = reader.read(chars)) != -1)
            buffer.append(chars, 0, read);

        return buffer.toString();
    } finally
    {
        if (reader != null)
            reader.close();
    }

}

私は次の出力を取得します

region: us-east

instanceTypes: [{type=std, sizes=[{size=lg, valueColumns=[{name=ebsOptimized, prices= {USD=0.025}}]}, {size=xl, valueColumns=[{name=ebsOptimized, prices={USD=0.05}}]}]}, {type=hiMem, sizes=[{size=xxxxl, valueColumns=[{name=ebsOptimized, prices={USD=0.05}}]}]}]

instanceTypes文字列から名前、価格、サイズを読みたい。

注:Javaオブジェクトを生成するためにhttp://jsongen.byingtondesign.com/を使用しました

4

1 に答える 1

0

GSONを使用して、これらをJavaドメインオブジェクトにマッピングすることを選択できます。

これが私が過去に作成したチュートリアルで、あなたが役に立つと思うかもしれません:

http://java.sg/parsing-a-json-string-into-an-object-with-gson-easily/

于 2012-10-23T11:21:02.583 に答える