[
https://issues.apache.org/jira/browse/THRIFT-2210?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13778557#comment-13778557
]
Alex Levenson commented on THRIFT-2210:
---------------------------------------
One more issue: thrift allows for maps whose keys are structs / containers, and
there's no way to turn that kind of map into JSON -- though the thrift website
says to avoid creating IDLs with maps like that.
I think TSimpleJSONProtocol should at least handle these cases by either
throwing an exception or (maybe?) skipping these fields? Or emit a sentinel map
like {"error": "this map couldn't be serialized to json by
TSimpleJSONProtocol"}?
> lib/java TSimpleJSONProtocol can emit invalid JSON
> --------------------------------------------------
>
> Key: THRIFT-2210
> URL: https://issues.apache.org/jira/browse/THRIFT-2210
> Project: Thrift
> Issue Type: Bug
> Reporter: Alex Levenson
>
> TSimpleJSONProtocol can emit JSON with maps whose keys are not string (which
> is not allowed is the JSON spec).
> This happens if the key in a map is anything other than a String (int, enum,
> etc)
> For example, it can emit JSON like this:
> {noformat}
> {"myMap":{5:"myValue"}}
> {noformat}
> which should be:
> {noformat}
> {"myMap":{"5":"myValue"}}
> {noformat}
> I have a path that fixes this, I'll upload it shortly (still trying to get my
> dev environment to run the tests).
> Also AFAICT there is no unit test for TSimpleJSONProtocol -- I'll try and add
> one to the patch.
> Thanks!
> Alex
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira