Thanks
On Friday, December 30, 2016 at 12:12:56 AM UTC+1, Dave Puchyr wrote:
>
> Parsing the following JSON input and sending the resulting object to the
> console yields the expected results for a JSNI JSON.parse() but yields
> incorrect timestamps using a JsInterop JSON.parse() (with correct results
> for all other properties). I'm completely at a loss as to why. Any
> suggestions?
>
> Input:
>
>
> {"Contract":"STK:USD:PBA@NYSE","action":"onHistoricalData","bar":"D","bars":[{"close":21.76,"high":21.84,"low":21.38,"open":21.41,"time":1451520000,"volume":3067},{"close":21.56,"high":21.63,"low":21.14,"open":21.37,"time":1451865600,"volume":2565},{"close":21.49,"high":21.57,"low":21.26,"open":21.5,"time":1451952000,"volume":2303}],"callback":4,"metadata":{"noData":false},"t":1482867635,"t0":1451763575,"ticker":"STK:USD:PBA@NYSE"}
>
> JSNI JSON parser:
>
> native static Object parse( String json ) /*-{ return $wnd.JSON.parse(
> json ); }-*/;
>
> JsInterop JSON parser:
>
> @JsType( isNative = true, namespace = GLOBAL, name = "JSON" )
> abstract public class JSON {
> native static public <T> T parse( String json );
> }
>
>
> @JsType( isNative = true, namespace = JsPackage.GLOBAL, name = "Object" )
> public class Message {
> public int callback; // HARD-CODED in conjunction with
> Service::CALLBACK
> }
>
>
> // json from WebSocket
> Window.console.info( parse( json ) );
> Message message = JSON.parse( json );
> Window.console.debug( message );
>
>
> console.info:
>
> 1. Object
> 1. Contract:"STK:USD:PBA@NYSE"
> 2. action:"onHistoricalData"
> 3. bar:"D"
> 4. bars:Array[3]
> 1. 0:Object
> 1. close:21.76
> 2. high:21.84
> 3. low:21.38
> 4. open:21.41
> 5. time:1451520000
> 6. volume:3067
> 7. __proto__:Object
> 2. 1:Object
> 1. close:21.56
> 2. high:21.63
> 3. low:21.14
> 4. open:21.37
> 5. time:1451865600
> 6. volume:2565
> 7. __proto__:Object
> 3. 2:Object
> 1. close:21.49
> 2. high:21.57
> 3. low:21.26
> 4. open:21.5
> 5. time:1451952000
> 6. volume:2303
> 7. __proto__:Object
> 4. length:3
> 5. __proto__:Array[0]
> 5. callback:4
> 6. metadata:Object
> 1. noData:false
> 2. __proto__:Object
> 7. t:1482867635
> 8. t0:1451763575
> 9. ticker:"STK:USD:PBA@NYSE"
> 10. __proto__:Object
>
>
> console.debug:
>
> 1.
> 1. Object
> 1. Contract:"STK:USD:PBA@NYSE"
> 2. action:"onHistoricalData"
> 3. bar:"D"
> 4. bars:Array[3]
> 1. 0:Object
> 1. close:21.76
> 2. high:21.84
> 3. low:21.38
> 4. open:21.41
> 5. time:1607400000
> 6. volume:3067
> 7. __proto__:Object
> 2. 1:Object
> 1. close:21.56
> 2. high:21.63
> 3. low:21.14
> 4. open:21.37
> 5. time:1607400000
> 6. volume:2565
> 7. __proto__:Object
> 3. 2:Object
> 1. close:21.49
> 2. high:21.57
> 3. low:21.26
> 4. open:21.5
> 5. time:1607400000
> 6. volume:2303
> 7. __proto__:Object
> 4. length:3
> 5. __proto__:Array[0]
> 5. callback:4
> 6. metadata:Object
> 1. noData:false
> 2. __proto__:Object
> 7. t:1482867635
> 8. t0:1451763575
> 9. ticker:"STK:USD:PBA@NYSE"
> 10. __proto__:Object
>
>
> I tested the code in Chrome, Edge, and Safari and each yielded the same
> results. Any suggestion as to where things are going awry will be greatly
> appreciated.
>
> Dave
>
>
--
You received this message because you are subscribed to the Google Groups "GWT
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.