2011-09-09 20 views
0

私はオブジェクトをJSONにエンコードし、その後JSON Stringからオブジェクトを作成しようとしているflexのinDesign Extensionに取り組んでいます。as3corelibはJSON.decode()でJSON Stringをデコードできません。

IはJSOD.encode(とコード午前クラス) パブリッククラスManualProductLink {

private var _productID:String; 
    private var _productName:String; 
    private var _productDescription:String; 
    private var _productPrice:String; 

    public function ManualProductLink(productID:String, productName:String, productDescription:String, productPrice:String):void { 
     this._productID = productID; 
     this._productName = productName; 
     this._productDescription = productDescription; 
     this._productPrice = productPrice; 
    } 

    public function get productID():String 
    { 
     return _productID; 
    } 

    public function set productID(value:String):void 
    { 
     _productID = value; 
    } 

    public function get productName():String 
    { 
     return _productName; 
    } 

    public function set productName(value:String):void 
    { 
     _productName = value; 
    } 

    public function get productDescription():String 
    { 
     return _productDescription; 
    } 

    public function set productDescription(value:String):void 
    { 
     _productDescription = value; 
    } 

    public function get productPrice():String 
    { 
     return _productPrice; 
    } 

    public function set productPrice(value:String):void 
    { 
     _productPrice = value; 
    } 

} 

これは私がオブジェクト

 /** 
    * Creates ManualProductLink, encodes to JSON and sends it to AsCppBridge 
    */ 
    public function manualProductLink(productID:String, productName:String, productDescription:String, productPrice:String):void { 
     var manualProductLinkl:ManualProductLink = new ManualProductLink(productID, productName, productDescription, productPrice); 
     bridge.saveManualProductLink(JSON.encode(manualProductLinkl)); 
    } 

得JSON文字列が符号化関数である。

{"productName":"testName","productDescription":"testDescription","productID":"testID","productPrice":"100.00"} 

私の問題は文字列をデコードすることです、私はtryiですこのようにいくつかのことをngの:

public function getManualProductLinkJSON():ManualProductLink { 
     var jsonString:String = bridge.getManualProductLink() as String; 
     var data:ManualProductLink = JSON.decode(jsonString) as ManualProductLink; 

     var manualProductLink:ManualProductLink = new ManualProductLink(data.productID, data.productName, data.productDescription, data.productPrice); 

     return manualProductLink; 
    } 

しかし、このように返されたオブジェクトから変数を取得しようとしている:
var str:String = manualProductLink.productID; 

が私のために動作しません。

元のオブジェクトに似たオブジェクトにJSON文字列をデコードするのに役立つことがあります。私はエンコードされたオブジェクトにではなく、データに復号化することによって直接デコードすることができませんでした

public function getManualProductLinkJSON():ManualProductLink { 
    var jsonString:String = bridge.getManualProductLink() as String; 
    var data:Object = JSON.decode(jsonString); 

    var manualProductLink:ManualProductLink = new ManualProductLink(data.productID, data.productName, data.productDescription, data.productPrice); 

    return manualProductLink; 
} 

:元のオブジェクトを再作成することが可能であったオブジェクト私は自分の質問に答えることができるように

答えて

関連する問題