This commit is contained in:
Jonathan Preddy
2014-07-23 13:20:59 -04:00
2 changed files with 8 additions and 34 deletions

View File

@@ -19,11 +19,9 @@
<AddTag>rn_%{RecordNumber}</AddTag> <AddTag>rn_%{RecordNumber}</AddTag>
<AddTag>bar</AddTag> <AddTag>bar</AddTag>
</Grok> </Grok>
<!-- <Mutate> <Mutate>
<Rename oldName="timestamp" newName="xtimestamp"/> <Rename oldName="TimeGenerated" newName="timestamp"/>
<Remove field="foo%{Index}" />
</Mutate> </Mutate>
-->
<Date field="timestamp" target="@timestamp" convertToUTC="true"> <Date field="timestamp" target="@timestamp" convertToUTC="true">
<Pattern>MMM d HH:mm:ss</Pattern> <Pattern>MMM d HH:mm:ss</Pattern>
<Pattern>MMM dd HH:mm:ss</Pattern> <Pattern>MMM dd HH:mm:ss</Pattern>

View File

@@ -114,37 +114,13 @@ namespace TimberWinR.Filters
public override void Apply(JObject json) public override void Apply(JObject json)
{ {
json = RenameProperty(json, name => name == OldName ? NewName : name) as JObject; JToken token = json[OldName];
} if (token != null)
private static JToken RenameProperty(JToken json, Dictionary<string, string> map)
{
return RenameProperty(json, name => map.ContainsKey(name) ? map[name] : name);
}
private static JToken RenameProperty(JToken json, Func<string, string> map)
{
JProperty prop = json as JProperty;
if (prop != null)
{ {
return new JProperty(map(prop.Name), RenameProperty(prop.Value, map)); json.Remove(OldName);
} json.Add(NewName, token);
}
JArray arr = json as JArray; }
if (arr != null)
{
var cont = arr.Select(el => RenameProperty(el, map));
return new JArray(cont);
}
JObject o = json as JObject;
if (o != null)
{
var cont = o.Properties().Select(el => RenameProperty(el, map));
return new JObject(cont);
}
return json;
}
} }
} }
} }