You are right, my analogy was incorrect. I didn't realize that ",string" 
was a documented annotation in the json package. I've never had cause to 
use it. My apologies for the misleading comment.

The package docs it say:

The "string" option signals that a field is stored as JSON inside a 
> JSON-encoded string."


A JSON-encoded string of a string looks like this: "\"hello\"". With that 
change to the data the code does not return an error. 
https://play.golang.org/p/XmeBN4885-

Chris

On Thursday, December 15, 2016 at 10:44:39 AM UTC-5, Sathish VJ wrote:
>
> I don't think your analogy is right.  The example you gave is an error, as 
> if we wrote: var i = float64("hello")
> Whereas, the code I wrote is just being explicit when it is ok to be 
> implicit.  So, more like we wrote: 
> var i1 = 3.142
> var i2 = float64(3.142)
> i3 := float64(3.142)
>
> The float64 casting is unnecessary in the latter two cases, but it isn't 
> an error.
>
> On Thursday, 15 December 2016 21:01:11 UTC+5:30, Chris Hines wrote:
>>
>> Suppose instead of `json:"s,string"` you had typed `json:"s,omitemptyy"` 
>> when you meant to type `json:"s,omitempty"`. Would you want to be told that 
>> you had an error in your struct tag? In general Go has a fail-fast 
>> philosophy to help prevent mistakes from persisting in a system unnoticed 
>> for a long time. It is this philosophy that warrants producing an error 
>> when the encoding/json package encounters an invalid json: struct tag.
>>
>> Chris
>>
>> On Thursday, December 15, 2016 at 8:32:03 AM UTC-5, Sathish VJ wrote:
>>>
>>> I have a struct that maps json of type string to a string.  
>>> S string `json:"s,string"`
>>>
>>> When run with that, it gives me the error:
>>> Error: json: invalid use of ,string struct tag, trying to unmarshal 
>>> "hello" into string
>>>
>>> I know that it is not really required.  But does it have to error out?
>>> Is the current behavior planned so for any reason?  I was thinking that 
>>> it's quite ok to over-specify the type here and the stand library would 
>>> ignore it.
>>>
>>> Full code: https://play.golang.org/p/gepaK1GsTC 
>>>
>>

-- 
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.

Reply via email to