@@ -27,7 +27,7 @@ public Dictionary<string, IEnumerable<Facet>> Facets
27
27
facets = new Dictionary < string , IEnumerable < Facet > > ( ) ;
28
28
foreach ( var key in keys )
29
29
{
30
- facets . Add ( key , RawFacets [ key ] . ToObject < IEnumerable < Facet > > ( ) ) ;
30
+ GetJArray ( RawFacets [ key ] , key , facets ) ;
31
31
}
32
32
}
33
33
return facets ;
@@ -48,19 +48,47 @@ public Dictionary<string, IEnumerable<string>> AutoComplete
48
48
autocompletes = new Dictionary < string , IEnumerable < string > > ( ) ;
49
49
foreach ( var key in keys )
50
50
{
51
- autocompletes . Add ( key , RawAutoComplete [ key ] . ToObject < IEnumerable < string > > ( ) ) ;
51
+ GetJArray ( RawAutoComplete [ key ] , key , autocompletes ) ;
52
52
}
53
53
}
54
54
return autocompletes ;
55
55
}
56
56
}
57
57
[ JsonProperty ( "facets" ) ]
58
- private Dictionary < string , JArray > RawFacets { get ; set ; }
58
+ private Dictionary < string , object > RawFacets { get ; set ; }
59
59
[ JsonProperty ( "autocomplete" ) ]
60
- private Dictionary < string , JArray > RawAutoComplete { get ; set ; }
60
+ private Dictionary < string , object > RawAutoComplete { get ; set ; }
61
61
[ JsonProperty ( "cursor" ) ]
62
62
public string Cursor { get ; set ; }
63
63
[ JsonProperty ( "total" ) ]
64
64
public int Total { get ; set ; }
65
+ private void GetJArray < TReturn > ( object jObject , string key , Dictionary < string , IEnumerable < TReturn > > keyValues )
66
+ {
67
+ switch ( jObject . GetType ( ) . Name )
68
+ {
69
+ case "JObject" :
70
+ foreach ( var token in ( ( JObject ) jObject ) . Values ( ) )
71
+ {
72
+ string tempKey = key ;
73
+ if ( token . GetType ( ) == typeof ( JArray ) )
74
+ {
75
+ tempKey = $ "{ tempKey } .{ token . Path } ";
76
+ keyValues . Add ( tempKey , ( ( JArray ) token ) . ToObject < IEnumerable < TReturn > > ( ) ) ;
77
+ }
78
+ else
79
+ {
80
+ GetJArray ( token , tempKey , keyValues ) ;
81
+ }
82
+ }
83
+ break ;
84
+ case "JArray" :
85
+ keyValues . Add ( key , ( ( JArray ) jObject ) . ToObject < IEnumerable < TReturn > > ( ) ) ;
86
+ break ;
87
+ case "JProperty" :
88
+ break ;
89
+ default :
90
+ break ;
91
+ }
92
+ }
65
93
}
66
94
}
0 commit comments