Abu Obeida Bakhach created CB-938:
-------------------------------------

             Summary: Need to pass more complex objects over the bridge
                 Key: CB-938
                 URL: https://issues.apache.org/jira/browse/CB-938
             Project: Apache Cordova
          Issue Type: Bug
          Components: WP7
    Affects Versions: 1.9.0
            Reporter: Abu Obeida Bakhach
            Assignee: Jesse MacFadyen


[WP7] Passing more complex objects over the bridge... Currently won't work. 
Basically the DataContractJsonSerializer .NET object that we employ to parse 
JSON on the native side can't parse nested objects in JSON. The DataContract 
stuff is supposed to make it easy to cast the various JSON values to .NET 
types. In the case of a nested object with dynamic keys, that you can't model 
ahead of time, we tried using a Dictionary type on the native side. This won't 
work [1].

This came up when deserializing FileTransfer upload options because they have a 
nested "params" object that house dynamic &key=value URL parameters to send 
with the HTTP request. Not sure if it happens in other spots.

Anywho, one potential solution is to explicitly convert nested objects such as 
these to a dumber structure. In the SO thread [1] they suggest having an array 
of {key:"known1",value:"foo"} pairs replace the objects.
The native side could parse that.

Another option is to use the JSON.net library [2]. MIT license. 300-ish kb .dll.

The stock System.Json namespace that is available in .NET and has better 
capabilities is not available on Windows Phone.

Any other solutions/ideas/comments/thoughts?

[1]
http://stackoverflow.com/questions/8064627/deserializing-json-object-with-u
nknown-fields
[2] http://json.codeplex.com/



--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to