2016-07-24 53 views
0

我想解析JSON。我使用下面的代碼來解析JSON在剃刀視圖中解析Json

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

這裏CanvasJsonDatastring類型,包含以下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.parse解析字符串JSON。

假設你模型屬性是

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

然後在腳本

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應該是包含一個屬性client包含屬性instanceIdtargetOrigin