我正在使用Java消费Sharepoint 2010 oData列表。到目前为止,使用SSL和NTLMv2的连接运行良好,我得到了Atom格式的响应。似乎为Sharepoint禁用了JSON格式。下一步是有效地解析响应以获取Java中的List条目内容属性。
我有一些选择,比如使用:
对上述任何内容以及建议的有效方法有何见解或经验?
我要解析或获取的内容属性是:
<m:properties xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<d:ContentTypeID xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">0x01005FC9ED59F2FC4842B6D</d:ContentTypeID>
<d:Activity xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">Activity 1</d:Activity>
<d:StartDate xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" m:type="Edm.DateTime">2012-04-16T00:00:00</d:StartDate>
<d:EndDate xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" m:type="Edm.DateTime">2012-04-16T06:00:00</d:EndDate>
<d:ActivityTypeValue xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" m:null="true" />
<d:CreatedById xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" m:type="Edm.Int32">193</d:CreatedById>
<d:ModifiedById xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" m:type="Edm.Int32">193</d:ModifiedById>
<d:Id xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" m:type="Edm.Int32">357</d:Id>
<d:ContentType xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">Item</d:ContentType>
<d:Modified xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" m:type="Edm.DateTime">2012-03-30T13:07:18</d:Modified>
<d:Created xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" m:type="Edm.DateTime">2012-03-30T11:35:42</d:Created>
<d:Version xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">1.0</d:Version>
</m:properties>
答案 0 :(得分:2)
JSON实际上是可行的,你只是不能使用$ format = json url参数来获取它。
您必须使用“接受”标题。
httppost.setHeader("Accept", "application/json");
刚刚完成了一个项目,我必须使用ODATA与SharePoint 2010 Enterprise进行交互,我很同情你的目标:)
我使用ODATA JSON将数据推送到SharePoint。最后,尽管事实证明SOAP接口包含了更多从List实际读取的信息。同样非常容易解析从SOAP返回的XML。
答案 1 :(得分:1)
在ROME中,您可以为dataservices
命名空间创建自定义模块(Defining a Custom Module)。这可能也是其他人想要使用的东西。