【发布时间】:2014-09-03 12:23:47
【问题描述】:
我对包含 xml 的网页进行了 ajax 调用。它将网页作为 xml 返回,我怎样才能返回它以便它像 json 一样更具可读性(将其转换为 JSON)。我查看了 accepts 标头,但它们似乎不起作用。这是我的代码:
var jqXHR = jQuery.ajax({
url: NBSBranchSiteContextURL ,
accepts:{json:'application/json'},
async:false });
alert(jqXHR.responseText);
xml 是:
<?xml version="1.0" encoding="utf-8" ?>
- <d:query xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" m:type="Microsoft.Office.Server.Search.REST.SearchResult">
<d:ElapsedTime m:type="Edm.Int32">62</d:ElapsedTime>
- <d:PrimaryQueryResult m:type="Microsoft.Office.Server.Search.REST.QueryResult">
<d:CustomResults m:type="Collection(Microsoft.Office.Server.Search.REST.CustomResult)" />
<d:QueryId>d6b8310d-58a6-49e0-bb0e-e9e10ca9de98</d:QueryId>
<d:QueryRuleId m:type="Edm.Guid">00000000-0000-0000-0000-000000000000</d:QueryRuleId>
<d:RefinementResults m:null="true" />
- <d:RelevantResults m:type="Microsoft.Office.Server.Search.REST.RelevantResults">
<d:GroupTemplateId m:null="true" />
<d:ItemTemplateId m:null="true" />
- <d:Properties>
- <d:element m:type="SP.KeyValue">
<d:Key>GenerationId</d:Key>
<d:Value>9223372036854775806</d:Value>
<d:ValueType>Edm.Int64</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>ExecutionTimeMs</d:Key>
<d:Value>15</d:Value>
<d:ValueType>Edm.Int32</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>QueryModification</d:Key>
<d:Value>CostCentreBranchPrefix:JH123 ContentClass=urn:content-class:SPSPeople</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>RenderTemplateId</d:Key>
<d:Value>~sitecollection/_catalogs/masterpage/Display Templates/Search/Group_Default.js</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>StartRecord</d:Key>
<d:Value>0</d:Value>
<d:ValueType>Edm.Int32</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>IsLastBlockInSubstrate</d:Key>
<d:Value>true</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>IsFirstBlockInSubstrate</d:Key>
<d:Value>false</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>IsFirstPinnedResultBlock</d:Key>
<d:Value>false</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>IsLastPinnedResultBlock</d:Key>
<d:Value>false</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>IsFirstRankedResultBlock</d:Key>
<d:Value>true</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>IsLastRankedResultBlock</d:Key>
<d:Value>true</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
</d:Properties>
<d:ResultTitle m:null="true" />
<d:ResultTitleUrl m:null="true" />
<d:RowCount m:type="Edm.Int32">2</d:RowCount>
- <d:Table m:type="SP.SimpleDataTable">
- <d:Rows>
- <d:element m:type="SP.SimpleDataRow">
- <d:Cells>
- <d:element m:type="SP.KeyValue">
<d:Key>Rank</d:Key>
<d:Value>6.42380905151367</d:Value>
<d:ValueType>Edm.Double</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>DocId</d:Key>
<d:Value>11</d:Value>
<d:ValueType>Edm.Int64</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>PreferredName</d:Key>
<d:Value>Dave</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>JobTitle</d:Key>
<d:Value>man</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>EmailAddress</d:Key>
<d:Value>daveH@</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>PartitionId</d:Key>
<d:Value>0c37852b-34d0-418e-91c6-2ac25af4be5b</d:Value>
<d:ValueType>Edm.Guid</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>UrlZone</d:Key>
<d:Value>0</d:Value>
<d:ValueType>Edm.Int32</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>AAMEnabledManagedProperties</d:Key>
<d:Value>AttachmentURI;deeplinks;DefaultEncodingURL;ExternalMediaURL;HierarchyUrl;OrgParentUrls;OrgUrls;OriginalPath;ParentLink;Path;PictureThumbnailURL;PictureURL;PublishingImage;recommendedfor;ServerRedirectedEmbedURL;ServerRedirectedPreviewURL;ServerRedirectedURL;SiteLogo;SitePath;SPSiteURL;UserEncodingURL</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>EditProfileUrl</d:Key>
<d:Value m:null="true" />
<d:ValueType>Null</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>ProfileViewsLastMonth</d:Key>
<d:Value m:null="true" />
<d:ValueType>Null</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>ProfileViewsLastWeek</d:Key>
<d:Value m:null="true" />
<d:ValueType>Null</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>ProfileQueriesFoundYou</d:Key>
<d:Value m:null="true" />
<d:ValueType>Null</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>RenderTemplateId</d:Key>
<d:Value>~sitecollection/_catalogs/masterpage/Display Templates/Search/Item_Default.js</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
</d:Cells>
</d:element>
- <d:element m:type="SP.SimpleDataRow">
- <d:Cells>
- <d:element m:type="SP.KeyValue">
<d:Key>Rank</d:Key>
<d:Value>6.42380905151367</d:Value>
<d:ValueType>Edm.Double</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>DocId</d:Key>
<d:Value>13</d:Value>
<d:ValueType>Edm.Int64</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>PreferredName</d:Key>
<d:Value>Asad</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>JobTitle</d:Key>
<d:Value>Software</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>EmailAddress</d:Key>
<d:Value>asadr@</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>PartitionId</d:Key>
<d:Value>0c37852b-34d0-418e-91c6-2ac25af4be5b</d:Value>
<d:ValueType>Edm.Guid</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>UrlZone</d:Key>
<d:Value>0</d:Value>
<d:ValueType>Edm.Int32</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>AAMEnabledManagedProperties</d:Key>
<d:Value>AttachmentURI;deeplinks;DefaultEncodingURL;ExternalMediaURL;HierarchyUrl;OrgParentUrls;OrgUrls;OriginalPath;ParentLink;Path;PictureThumbnailURL;PictureURL;PublishingImage;recommendedfor;ServerRedirectedEmbedURL;ServerRedirectedPreviewURL;ServerRedirectedURL;SiteLogo;SitePath;SPSiteURL;UserEncodingURL</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>EditProfileUrl</d:Key>
<d:Value m:null="true" />
<d:ValueType>Null</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>ProfileViewsLastMonth</d:Key>
<d:Value m:null="true" />
<d:ValueType>Null</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>ProfileViewsLastWeek</d:Key>
<d:Value m:null="true" />
<d:ValueType>Null</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>ProfileQueriesFoundYou</d:Key>
<d:Value m:null="true" />
<d:ValueType>Null</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>RenderTemplateId</d:Key>
<d:Value>~sitecollection/_catalogs/masterpage/Display Templates/Search/Item_Default.js</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
</d:Cells>
</d:element>
</d:Rows>
</d:Table>
<d:TotalRows m:type="Edm.Int32">2</d:TotalRows>
<d:TotalRowsIncludingDuplicates m:type="Edm.Int32">2</d:TotalRowsIncludingDuplicates>
</d:RelevantResults>
<d:SpecialTermResults m:null="true" />
</d:PrimaryQueryResult>
- <d:Properties>
- <d:element m:type="SP.KeyValue">
<d:Key>RowLimit</d:Key>
<d:Value>100</d:Value>
<d:ValueType>Edm.Int32</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>SourceId</d:Key>
<d:Value>b09a7990-05ea-4af9-81ef-edfab16c4e31</d:Value>
<d:ValueType>Edm.Guid</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>EnableInterleaving</d:Key>
<d:Value>true</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>piPageImpression</d:Key>
<d:Value>23924_1185_2057</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>SerializedQuery</d:Key>
<d:Value><Query Culture="en-GB" EnableStemming="True" EnablePhonetic="False" EnableNicknames="False" IgnoreAllNoiseQuery="True" SummaryLength="180" MaxSnippetLength="180" DesiredSnippetLength="90" KeywordInclusion="0" QueryText="CostCentreBranchPrefix:JH123" QueryTemplate="" TrimDuplicates="True" Site="09325ab3-1fbf-4798-8c94-9b7547bfae90" Web="b21f0568-898a-4fd0-b911-916c1491ba15" KeywordType="True" HiddenConstraints="" /></d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
</d:Properties>
<d:SecondaryQueryResults m:type="Collection(Microsoft.Office.Server.Search.REST.QueryResult)" />
<d:SpellingSuggestion m:null="true" />
<d:TriggeredRules m:type="Collection(Edm.Guid)" />
</d:query>
我希望它返回到哪里,无论是<d:Key>PreferredName、JobTitle 还是电子邮件<d:Value>,所以在这种情况下是 Dave,Asad 的名字。用于工作职位的人员和软件以及用于电子邮件的 daveH@ 和 asadr@。未来可能会有更多价值
【问题讨论】:
-
你的意思是,你想把xml转换成json
-
如果您想将 XML 转换为 JSON,请通过此链接 stackoverflow.com/questions/1773550/…
-
为什么需要转成JSON?您是否需要将结果提供给另一个需要 JSON 输入的服务?是否有技术原因不能使用 jQuery 的
$.parseXML函数的可遍历结果? -
什么链接?你没有给一个
-
告诉服务器你只想取回 JSON 只有在服务器费心注意该标头时才重要。