Я пытаюсь преобразовать набор элементов списка SharePoint (и связанных данных) в объект JSON. Для этого я пытаюсь создать многомерный массив, а затем перебирать объекты SharePoint для его заполнения.Преобразование списка SharePoint в JSON с использованием массивов
Это соответствующий код до сих пор:
#Lookup Source Address
$rootWeb = $Context.Web
$List = $rootWeb.lists.getByTitle($ListName)
$fields = $List.Fields;
$ListItems = $List.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery())
#Load the List
$Context.Load($rootWeb)
$Context.Load($List)
$Context.Load($ListItems)
$context.Load($fields)
$Context.ExecuteQuery()
$listArray = @()
$listArray["DisplayTitle"] = @()
$listArray["Description"] = @()
$listArray["Setting"] = @()
$listArray["HealthAreas"] = @()
$listArray["ResourceType"] = @()
$listArray["ExternalURL"] = @()
$listArray["Active"] = @()
Write-Host "List items are"
foreach ($item in $ListItems)
{
$listArray["DisplayTitle"].Add($item["Title"])
$listArray["Description"].Add($item["File Description"])
$listArray["Setting"].Add($item["Setting"])
$listArray["HealthAreas"].Add($item["Health_x0020_Area"])
$listArray["ResourceType"].Add($item["Resource_x0020_Type"])
$listArray["ExternalURL"].Add($item["External_x0020_file_x0020_path"])
$listArray["Active"].Add($item["Currently_x0020_active_x003f_"])
}
Write-Host "############################"
Write-Host $listArray | ConvertTo-Json
Я знаю, что есть пробел в моем мышлении здесь (может быть, мне нужно хэш-таблицу), но просто не могу видеть его. Ошибка, которую я получаю:
Вы не можете вызвать метод для выражения с нулевым значением.
Однако я не вижу, откуда моя нулевая переменная может возникнуть, поскольку я подтвердил, что каждый элемент цикла содержит данные (путем записи на консоль).