found, datavizRules = dataviz.TryGetFilterRules()
comparisonOperator = Enum.Parse(clr.GetClrType(StringComparisonOperator),jsonParam['comparisonOperator'])
conditionValue = createConditionalValue(jsonParam['stringValue']['type'],jsonParam['stringValue']['value'])
filterRule = None
if(found):
    for testedRule in datavizRules:
        ruleType = clr.GetClrType(type(testedRule.RuleCondition)).ToString()
        if(testedRule.DisplayName == jsonParam['displayName'] and ruleType == 'Spotfire.Dxp.Application.Visuals.StringRuleCondition'):
            filterRule = testedRule
            break
    if(filterRule == None):
        filterRule = datavizRules.AddStringRule(jsonParam['expression'], comparisonOperator, conditionValue, jsonParam['hideMatchedItems'])
        filterRule.ManualDisplayName = jsonParam['displayName']
    filterRule.Enabled = jsonParam['enabled']
    filterRule.EvaluatePerTrellis = jsonParam['evaluatePerTrellis']
    filterRule.Expression = jsonParam['expression']
    filterRule.RuleCondition.ComparisonOperator = comparisonOperator
    filterRule.RuleCondition.StringValue = conditionValue