thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jens Geyer <jensge...@hotmail.com>
Subject Re: Python client vs C# client json/binary different.. a lot of extra comma!! (confused)
Date Mon, 11 Mar 2019 23:18:39 GMT
What extra comma?

-----Ursprüngliche Nachricht----- 
From: C Bergström
Sent: Tuesday, March 12, 2019 12:04 AM
To: user@thrift.apache.org
Subject: Re: Python client vs C# client json/binary different.. a lot of 
extra comma!! (confused)

But do you think that's the issue or the extra comma? I'm not sure I see
the bug

On Tue, Mar 12, 2019 at 6:51 AM Jens Geyer <jensgeyer@hotmail.com> wrote:

> FWIW, the JSON structure totally makes sense:
>
> [
>   1,
>   "auth",
>   1,
>   0,
>   {
>     "1": {
>       "rec": {
>         "1": {
>           "i32": 40002
>         },
>         "2": {
>           "i64": 59311498
>         },
>         "3": {
>           "str": "MkEyMDcyOTQzQkE5NERBMTAyOUQwNURGRUI1Rjc3ODM"
>         },
>         "4": {
>           "str": "YyMvdW5pdHksMS4wIGJldGEsMjAxNDEyMjM"
>         },
>         "5": {
>           "map": [
>             "str",
>             "str",
>             0,
>             {}
>           ]
>         }
>       }
>     }
>   }
> ]
>
>
> https://jsoneditoronline.org is quite helpful to find out where these
> parentheses may come from :-)
>
>
>
> -----Ursprüngliche Nachricht-----
> From: C Bergström
> Sent: Monday, March 11, 2019 10:32 AM
> To: user@thrift.apache.org
> Subject: Python client vs C# client json/binary different.. a lot of extra
> comma!! (confused)
>
> Hi
>
> I'm really super stuck and kindly ask for some help. I'm working on a
> python based client, but seeing some correct or spurious extra comma and
> wondering what on earth am I doing wrong.
>
> For example
> [1,"auth",1,0,
> vs
> [1"auth"10
>
> I swear my code is correct?!! (The C# version does work.. I tried reading
> the source, but it looked fine and it does work at the end of the day.)
>
> // I test with thrift compiler 12 and 13 git head
> auth_args.thrift
> -------------
> namespace py auth_args
>
> struct Data {
>     1: required i32 project_id
>     2: required i64 uid
>     3: required string auth_token
>     4: required string version
>     5: map<string,string> kv
> }
>
> exception RtmGatedException {
>     1: i32 code
>     2: string reason
> }
>
>
> service AuthArgs {
>     bool auth(1:i32 project_id 2:i64 uid 3:string auth_token 4:string
> version 5:map<string, string> kv)
> }
> ----------------
>
> Swapped to JSON protocol just so I could get something readable
> Python New
> // Many extra comma and the end has a lot of extra parentheses
> load      =
>
> '[1,"auth",1,0,{"1":{"rec":{"1":{"i32":40002},"2":{"i64":59311498},"3":{"str":"MkEyMDcyOTQzQkE5NERBMTAyOUQwNURGRUI1Rjc3ODM"},"4":{"str":"YyMvdW5pdHksMS4wIGJldGEsMjAxNDEyMjM"},"5":{"map":["str","str",0,{}]}}}}]'
>
>
> C# example output just for testing
>           =
>
> [1"auth"10{"1":{"i32":40002},"2":{"i64":59311498},"3":{"str":"MkEyMDcyOTQzQkE5NERBMTAyOUQwNURGRUI1Rjc3ODM"},"4":{"str":"YyMvdW5pdHksMS4wIGJldGEsMjAxNDEyMjM"},"5":{"map":["str""str"0{}}]
>
> Binary portocol for anyone with a batman decoder ring (I couldn't get the
> c++ debug tool to build :-/ )
>
> I'm kinda concerned the magic bit is different.. How would I even change
> this in Python?
> ----------------
> Python New
>
> \x80\x01\x00\x01\x00\x00\x00\x04auth\x00\x00\x00\x00\x08\x00\x01\x00\x00\x9cB\n\x00\x02\x00\x00\x00\x00\x03\x89\x05\x8a\x0b\x00\x03\x00\x00\x00
> ED237CF629A6CD7AF601659A39CECFDC\x0b\x00\x04\x00\x00\x00\x1ac#/unity,1.0
> beta,20141223\r\x00\x05\x0b\x0b\x00\x00\x00\x00\x00
>
> C# old working
>
> \x00\x00\x00\x82\x0f\xff\x00\x01\x00\x00\x00\x01\x00\x01\x00\x00\x00\x00\x80\x01\x00\x01\x00\x00\x00\x04auth\x00\x00\x00\x00\x08\x00\x01\x00\x00\x9cB\n\x00\x02\x00\x00\x00\x00\x03\xf7e#\x0b\x00\x03\x00\x00\x00
> 6E97028A8240EC2B8BB1C6C8932A6E60\x0b\x00\x04\x00\x00\x00\x1ac#/unity,1.0
> beta,20141223\r\x00\x05\x0b\x0b\x00\x00\x00\x00\x00
>
> 

Mime
View raw message