{"action":"created","issue":{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/3338","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/3338/labels{/name}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/3338/comments","events_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/3338/events","html_url":"https://github.com/GoogleCloudPlatform/kubernetes/issues/3338","id":53808234,"number":3338,"title":"Investigate alternative JSON parsers","user":{"login":"lavalamp","id":647318,"avatar_url":"https://avatars.githubusercontent.com/u/647318?v=3","gravatar_id":"","url":"https://api.github.com/users/lavalamp","html_url":"https://github.com/lavalamp","followers_url":"https://api.github.com/users/lavalamp/followers","following_url":"https://api.github.com/users/lavalamp/following{/other_user}","gists_url":"https://api.github.com/users/lavalamp/gists{/gist_id}","starred_url":"https://api.github.com/users/lavalamp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lavalamp/subscriptions","organizations_url":"https://api.github.com/users/lavalamp/orgs","repos_url":"https://api.github.com/users/lavalamp/repos","events_url":"https://api.github.com/users/lavalamp/events{/privacy}","received_events_url":"https://api.github.com/users/lavalamp/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/labels/area/performance","name":"area/performance","color":"fef2c0"},{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/labels/priority/P3","name":"priority/P3","color":"fef2c0"},{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/labels/team/master","name":"team/master","color":"d2b48c"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":11,"created_at":"2015-01-08T22:15:00Z","updated_at":"2015-03-12T19:01:58Z","closed_at":null,"body":"e.g., I saw this on reddit: http://ugorji.net/blog/go-codecgen\r\n\r\nThe primary reason why this would be worth our time at the moment is to get better error messages when people do things like pass a string to an array, or misspell a field name. Performance will eventually become important as we scale up, but serialization performance is a very tiny issue compared with e.g. the serial health checking when you list minions."},"comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/comments/78571202","html_url":"https://github.com/GoogleCloudPlatform/kubernetes/issues/3338#issuecomment-78571202","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/3338","id":78571202,"user":{"login":"smarterclayton","id":1163175,"avatar_url":"https://avatars.githubusercontent.com/u/1163175?v=3","gravatar_id":"","url":"https://api.github.com/users/smarterclayton","html_url":"https://github.com/smarterclayton","followers_url":"https://api.github.com/users/smarterclayton/followers","following_url":"https://api.github.com/users/smarterclayton/following{/other_user}","gists_url":"https://api.github.com/users/smarterclayton/gists{/gist_id}","starred_url":"https://api.github.com/users/smarterclayton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smarterclayton/subscriptions","organizations_url":"https://api.github.com/users/smarterclayton/orgs","repos_url":"https://api.github.com/users/smarterclayton/repos","events_url":"https://api.github.com/users/smarterclayton/events{/privacy}","received_events_url":"https://api.github.com/users/smarterclayton/received_events","type":"User","site_admin":false},"created_at":"2015-03-12T19:01:58Z","updated_at":"2015-03-12T19:01:58Z","body":"https://github.com/dustin/go-jsonpointer is an interesting implementation for locating arbitrary json - we could easily convert some of the proposed syntaxes into this form.  \r\n\r\nWe really want more control over both phases: tokenization (for better error reporting and debugging of local json files in the cli) and structural comparison.  The author of that library also forked the go json scanner to expose scanning more directly. We could potentially extend further and hook ignored keys (not recognized) and maltyped keys.\r\n\r\nI'm a bit worried about flagging typo keys because that breaks forwards compat.  That sort of behavior should be client specific (kubectl logs to stderr unrecognized fields)."}}