Re: [go-nuts] Re: Golang Error - When marshelling data

2016-06-17 Thread Konstantin Khomoutov
On Fri, 17 Jun 2016 00:50:20 -0700 (PDT)
User123  wrote:

[...]
> When i return http response from a function should i use
> *func makeCalls() (string, error, *http.Response, error) *
> or
> *func makeCalls() (string, error, http.Response, error)  *
> 
> For the struct i created above what should be the type of header
> should it be **http.Header  or **http.Header ??*

Most of the code in the net/http package itself pass values of
net/http.Response by pointer, so I'd do the same.

On a side note, can I please ask you to refrain from using that lame
HTML formatting of the Google Groups interface?  In a plain mail reader
which quite many people use to read mailing list your message looks
something like [1].  As you could see, guessing which asterisk denotes
a pointer and which is a stupid Google Group's attempt at emphasising
is a bit cumbersome :-)

1. http://www.fastpic.info/image/9b5a0f4dcf

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[go-nuts] Re: Golang Error - When marshelling data

2016-06-17 Thread User123
Have found the cause of the issue

The message that I was trying to marshall had *0x10a3c2d0 (when 
fmt.Println)  *which was http response.

>From  https://github.com/revel/revel/issues/1037 i found that

*Since Go 1.6 http.Request struct contains `Cancel <-chan struct{}` which*
*results in `json: unsupported type: <-chan struct {}`*

So i created struct for httpRes instaed of using interface . 

*type HttpRespStruct struct {*
* Status string*
* StatusCode int*
* Proto string*
* Header http.Header *
* ContentLength int64*
* TransferEncoding []string*
*}*
and it fixed the issue.

One thing i wanted to ask

When i return http response from a function should i use
*func makeCalls() (string, error, *http.Response, error) *
or
*func makeCalls() (string, error, http.Response, error)  *

For the struct i created above what should be the type of header should it 
be **http.Header  or **http.Header ??*

Thank You.

On Thursday, June 16, 2016 at 3:14:00 PM UTC+5:30, User123 wrote:

> The data  I am trying to marshal contains serialized data. This data is 
> received in http response.
>
> It works perfectly when I try in version 1.4.1/ 1.4.2.
>
> But when I try this to the latest version 1.6 it gives an error: *json: 
> unsupported type: <-chan struct {}*
>
> Why is it so? 
>
> I am not able to upgrade to the latest version because of this.
>
> Please help!
>
>
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [go-nuts] Re: Golang Error - When marshelling data

2016-06-16 Thread Konstantin Khomoutov
On Thu, 16 Jun 2016 04:55:41 -0700 (PDT)
User123  wrote:

> Is it giving error since it has null values? 
> 
> I'm just not able to get it. Since this code works perfectly fine in
> 1.4.2

A wild guess:

1) Your error message is:

 json: unsupported type: <-chan struct {}

   and indeed the docs of encoding/json clearly state that certain
   types cannot be sensibly marshalled and unmarshalled.
   Channel types are among them.

2) Some value contained as a field of your value -- which is supposedly
   of some custom struct type -- started to contain a variable of type

 <-chan struct{}

   somewhere between 1.4.2 and 1.6.

   This might be not an immediate field of your struct-typed value
   but a field of a value which is an immediate field, and so on --
   deeper down the hierarchy -- because the json encoder is recursive.

Hence inspect what your value might clinge on which is not *pure data.*
Say, an http.Client instance is not pure data.

Once identified, make sure you convert your existing value you're
encoding to a value of some other type which contains nothing but pure
data values.

[...]
> > I did fmt.println on the data that I am trying to marshall and it
> > looks like this
> >
> > *%!(EXTRA main.JobResponseRoot={{92b4f95b309e8db0f8d56afadefc}
> > http.res {[{{  map[] }
> > "Date","Time","Time_Zone","Source","Name","Raw_Data"*
> > *  0x10a3c2d0}]}})*
[...]
> >>> The data  I am trying to marshal contains serialized data. This
> >>> data is received in http response.
> >>>
> >>> It works perfectly when I try in version 1.4.1/ 1.4.2.
> >>>
> >>> But when I try this to the latest version 1.6 it gives an error:
> >>> *json: unsupported type: <-chan struct {}*
[...]

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[go-nuts] Re: Golang Error - When marshelling data

2016-06-16 Thread User123
Is it giving error since it has null values? 

I'm just not able to get it. Since this code works perfectly fine in 1.4.2

On Thursday, June 16, 2016 at 4:08:38 PM UTC+5:30, User123 wrote:
>
> I cannot provide the full code sincethere are some dependencies.
>
> I did fmt.println on the data that I am trying to marshall and it looks 
> like this
>
> *%!(EXTRA main.JobResponseRoot={{92b4f95b309e8db0f8d56afadefc} http.res 
> {[{{  map[] } "Date","Time","Time_Zone","Source","Name","Raw_Data"*
> *  0x10a3c2d0}]}})*
>
> On Thursday, June 16, 2016 at 3:21:48 PM UTC+5:30, Dave Cheney wrote:
>>
>> Hello,
>>
>> Can you please provide a runnable code sample that shows the problem.
>>
>> Thanks
>>
>> Dave
>>
>> On Thursday, 16 June 2016 19:44:00 UTC+10, User123 wrote:
>>>
>>> The data  I am trying to marshal contains serialized data. This data is 
>>> received in http response.
>>>
>>> It works perfectly when I try in version 1.4.1/ 1.4.2.
>>>
>>> But when I try this to the latest version 1.6 it gives an error: *json: 
>>> unsupported type: <-chan struct {}*
>>>
>>> Why is it so? 
>>>
>>> I am not able to upgrade to the latest version because of this.
>>>
>>> Please help!
>>>
>>>
>>>
>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.