プロさんのおうち   ~プログラムのサンプル置き場~


JSONを変換する


今回は、System.Web.Extensionsに存在しているJavaScriptSerializerを利用して、JSONを変換してみます。

ソース

JSONを変換するサンプルソースは以下のようになります。

今回は、Amazon Rekognitionのdetect-textの結果をオブジェクトに変換しています(TypeがLINEのDetectedTextを抽出しています)。


JavaScriptSerializer serializer = new JavaScriptSerializer();
// JSONを対象オブジェクトに変換する
Dictionary<string, object> detect =
    serializer.Deserialize<Dictionary<string, object>>(File.ReadAllText(args[0]));

List<string> outputLines = new List<string>();

// 変換結果のうち、LINEのみ出力する。
foreach (object value in detect.Values)
{
    ArrayList valueList = value as ArrayList;

    foreach (object valueObj in valueList)
    {
        Dictionary<string, object> valueDic = valueObj as Dictionary<string, object>;

        if (!valueDic.ContainsKey("Type"))
        {
            continue;
        }

        if ("LINE".Equals(valueDic["Type"].ToString()))
        {
            outputLines.Add(valueDic["DetectedText"].ToString());
        }
    }
}

File.WriteAllLines(args[1], outputLines.ToArray());
				

今回はDeserializeメソッドでDictionaryに変換していますが、専用クラスを作成すればそちらを指定することができます。

また、そのままObjectで受け取りたいのであれば、DeserializeObjectメソッドを利用することもできます。

参考URL



メニューに戻る


CopyRight 2019 株式会社PUreatio