[ 
https://issues.apache.org/jira/browse/FLEX-35297?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Piotr Zarzycki updated FLEX-35297:
----------------------------------
    Attachment: book_js_with_bindable.png

> JSON.stringify is not working with object marked by Bindable
> ------------------------------------------------------------
>
>                 Key: FLEX-35297
>                 URL: https://issues.apache.org/jira/browse/FLEX-35297
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: FlexJS
>    Affects Versions: Apache FlexJS 0.8.0, Apache FalconJX 0.8.0
>            Reporter: Piotr Zarzycki
>            Assignee: Greg Dove
>         Attachments: book_js_with_bindable.png
>
>
> FlexJS is using JSON.stringify to produce json from value objects. 
> Two general issues has been discovered during development:
> 1) "stringify" function is not able to parse object which is marked by 
> [Bindable] tag
> *Description:*
> In the attached example there is class Book which is marked by [Bindable] 
> tag. During parsing we are getting stack trace:
> {code}
> Uncaught TypeError: Converting circular structure to JSON
>     at JSON.stringify (<anonymous>)
> {code}
> This happened cause compiled VO object contains additional properties which 
> "stringify" is not able to parse. (book_js_with_bindable.png)
>  
> 2) there are differences between swf and js sight in results of parsing by 
> "stringify" function
> *JSON.stringify SWF:* 
> {
>     "authors":["Kitten","Puppy"],
>     "date":"Wed Apr 19 14:00:50 GMT-0500 2017",
>     "doNotHide":99,
>     "page":0,
>     "title":"Trump",
>     "topic":{"name":"Politics"},
>     "dedication":"Lucy"
> }
> *JSON.stringify JS:* 
> {
>      "topic":{},
>      "internalDate":"2017-04-19T21:30:27.959Z",
>      "title":"Trump",
>      "date":"2017-04-19T21:30:27.959Z",
>      "authors":["Kitten","Puppy"],
>      "_dedication":"Lucy"
> }
> *Expected results:*
> 1) We should be able to parse object with [Bindable] tag without any issues
> 2) SWF and JS stringify function should produce exact same json results.
> *Proposition:*
> - In order to avoid issues above VO should contains "toJSON" function.
> Example class with toJSON function:
> {code}
> [Bindable]
> public class Book
> {
>         public var title:String;
>         public var page:int;
>         public var date:Date;
>         public var authors:Array;
>         public var topic:Topic = new Topic();
>         public var doNotHide:uint = 99;
>         private var internalDate: Date = new Date();
>               private var _dedication:String;
>         public function get dedication():String
>         {
>             return _dedication;
>         }
>         public function set dedication(value:String):void
>         {
>             _dedication = value;
>         }
>               public function toJSON():Object
>               {
>                       return {title: title,
>                               page: page,
>                               date: date,
>                               authors: authors,
>                               topic: {name: topic.name},
>                               doNotHide: doNotHide,
>                               internalDate: internalDate,
>                           dedication: dedication};
>               }    
>  }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to