private bool WriteSingleFile(LanguageData data, string dstPath) { var root = new JObject(); var groups = data.GroupBy(o => o.Namespace); foreach (var g in groups) { var namespaces = g.Key.Split('.'); var prev = new JObject(g.Select(o => new JProperty(o.Key, o.Value))); foreach (var ns in namespaces.Reverse()) { var temp = new JObject(new JProperty(ns, prev)); prev = temp; } // 各グループ要素を、全体のJSONオブジェクトにマージ root.Merge(prev); } File.WriteAllText(dstPath, root.ToString()); return true; }