{"action":"opened","issue":{"url":"https://api.github.com/repos/aspnet/JsonPatch/issues/37","repository_url":"https://api.github.com/repos/aspnet/JsonPatch","labels_url":"https://api.github.com/repos/aspnet/JsonPatch/issues/37/labels{/name}","comments_url":"https://api.github.com/repos/aspnet/JsonPatch/issues/37/comments","events_url":"https://api.github.com/repos/aspnet/JsonPatch/issues/37/events","html_url":"https://github.com/aspnet/JsonPatch/issues/37","id":179559820,"number":37,"title":"Patching of dictionaries should be case sensitive on keys","user":{"login":"kichalla","id":6559784,"avatar_url":"https://avatars.githubusercontent.com/u/6559784?v=3","gravatar_id":"","url":"https://api.github.com/users/kichalla","html_url":"https://github.com/kichalla","followers_url":"https://api.github.com/users/kichalla/followers","following_url":"https://api.github.com/users/kichalla/following{/other_user}","gists_url":"https://api.github.com/users/kichalla/gists{/gist_id}","starred_url":"https://api.github.com/users/kichalla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kichalla/subscriptions","organizations_url":"https://api.github.com/users/kichalla/orgs","repos_url":"https://api.github.com/users/kichalla/repos","events_url":"https://api.github.com/users/kichalla/events{/privacy}","received_events_url":"https://api.github.com/users/kichalla/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/aspnet/JsonPatch/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-09-27T17:29:24Z","updated_at":"2016-09-27T17:29:24Z","closed_at":null,"body":"The current code handles all (dynamic(example: ExpandoObject implements IDictionary<string,object>) or not) dictionaries which implement IDictionary<string, object> in a case Insensitive way. This is an incorrect behavior.\r\n\r\nFor example:\r\n1. When Json.net deserializes data into a regular IDictionary<,> it considers the keys **case-sensitive**.\r\n2. When Json.net deserializes data into a regular Poco type, it considers the property names **case-Insensitive.**\r\n\r\nConsidering the above behavior, we should do the following in json patch:\r\n1. For dynamic types (like ExpandoObject, DynamicObject etc.), the matching of keys should be case-Insensitive. This is to keep the behavior consistent with a Poco type where the property names are considered **case-Insensitive.**\r\n2. For dictionaries, keep the default json.net behavior, i.e. keep them **case sensitive.**\r\n\r\n@dougbu @rynowak \r\n"}}
{"actor":{"display_login":"kichalla"}}