2016-07-24 7 views
0

JSONを解析したい。私はここでJSONJSONを剃刀で解析する

var sr = @Html.Raw(Json.Encode(Model.CanvasJsonData)); 

を解析するためのコードの下にCanvasJsonDataを使用していますタイプstringのものであり、以下のJSON文字列が含まれています

{ 
    "client":{ 
     "instanceId":"_:GPAT_Connect:18:2;a:canvasapp", 
     "targetOrigin":"https://gcpaexp--gcpdev3q1.cs13.my.salesforce.com", 
     "instanceUrl":"https://gcpaexp--GCPDEV3Q1.cs13.my.salesforce.com", 
     "oauthToken":"00DW0000008sVOh!AR8AQLlBiYZZ0iJHv6xBOMSppnBkO_g0Vlug2072sPQ.JkgtRNpQh7zF0Qym7oDOQn1c3qhAmRAJ6VWr55zdpCDYp1WD_EI4" 
    } 
} 

私は、JSONを解析するために、正しくやっていますか?私はこのmvcの剃刀のビューを行う必要があります。

今、私の問題はsr.clientundefinedとしています。

var sr = @Html.Raw(Json.Encode(Model.CanvasJsonData));   
      Sfdc.canvas(function() { 
       Sfdc.canvas.client.publish(sr.client, { 
       name: 'mybox.sendVal', payload: { value : 'request created'} }); 
      })() ; 
+0

ですあなたのJSON文字列はvalideではなかったからです。あなたの答えに正しいJSONを再テストして、まだエラーが発生していないかどうかチェックしてください。 – CodeNotFound

+0

JSON @ Html.Raw(Json.Encode(Model.CanvasJsonData))を解析する正しい方法ですか。 [email protected](Model.CanvasJsonData); – user662285

答えて

0

CanvasJsonDatastring(ないobject)ですので、あなたはJSONへの文字列を解析するためにJSON.parseを使用する必要があります。あなたのモデルプロパティを想定し

は私が書き換え後のスクリプトまたは

var sr = JSON.parse(@Html.Raw(Json.Encode(Model.CanvasJsonData))); // returns Object {client: Object} 
console.log(sr.client.instanceId); // returns '_:GPAT_Connect:18:2;a:canvasapp' 

で、CanvasJsonDataプロパティinstanceIdを含むプロパティclientを含むオブジェクトである必要があり

model.CanvasJsonData = "{\"client\":{\"instanceId\":\"_:GPAT_Connect:18:2;a:canvasapp\",\"targetOrigin\":\"https://gcpaexp ...... }" 

targetOriginなど