Sharepoint 2013:从人员选取器输入(JSON)访问数据

时间:2015-09-28 14:45:56

标签: jquery json sharepoint-2013

我有一个Sharepoint 2013客户端人员选择器。它返回以下结构:

 <input id="peoplePickerDiv1_TopSpan_HiddenInput" name="peoplePickerDiv1_TopSpan_HiddenInput" type="hidden" value="
[{&quot;Key&quot;:&quot;i:0#.w|XXXXX\\tkabcs&quot;,&quot;Description&quot;
:&quot;XXXXX\\tkabcs&quot;,&quot;DisplayText&quot;
:&quot;ABCDE, ABC-DEF&quot;,&quot;EntityType&quot;:&quot;User&quot;
,&quot;ProviderDisplayName&quot;:&quot;Active Directory&quot;,&quot;ProviderName&quot;:&quot;AD&quot;,&quot;IsResolved&quot;
    :true,&quot;EntityData&quot;:,&quot;MultipleMatches&quot;:}]">

如何在值属性中访问类似“Key”的内容?

(抱歉结构不好,不得不从控制台日志中取出)

1 个答案:

答案 0 :(得分:2)

该输入的值看起来像JSON,除了它在字符串末尾附近有两个语法错误。我不得不改变:

$(".sub-menu > li:first-child").each(function(){
    var parent = $(this).parent('ul').parent('.has-sub-menu');   
    var copy = parent.clone();
    $(copy).removeClass("has-sub-menu").find(".sub-menu").remove(); 
    $(copy).prepend('Über: ');     
    $(this).before(copy);
});

$('.has-sub-menu > a').attr('href' ,'#');

为:

EntityData&quot;:,&quot;MultipleMatches&quot;:}]

(删除额外的,并且:)

通过这些更改,我能够将字符串解析为对象并访问密钥。

EntityData&quot;:&quot;MultipleMatches&quot;}]

这是JSFiddle demo