我想解析JSON。我使用下面的代码来解析JSON
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 razor视图。
现在,我的问题是sr.client
为undefined
。
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 :(得分:0)
由于CanvasJsonData
是string
(而非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
的对象,其中包含属性instanceId
,targetOrigin
等