/// <summary> /// JSONのツリーを探索して、一つの言語分のデータをLangageData型のインスタンスとして作成します。 /// </summary> /// <param name="obj"></param> /// <param name="list"></param> private static void Traverse(JObject obj, ref LanguageData list) { foreach (var item in obj) { var value = item.Value; // itemがツリー構造の枝/葉のどちらか判定 var isLeaf = value.Type != JTokenType.Object; if (isLeaf) { var ns = TrimEnd(value.Path, "." + item.Key); var str = value.Type != JTokenType.Array ? value.ToString() : value.ToString(Formatting.None); var data = new LocalizationItem(ns, item.Key, str); list.Add(data); } else { Traverse((JObject)value, ref list); } } }