Я получил файл CSV с идентификатором и данными Json. Мне нужно проанализировать данные в классе CustomerData.
Однако у меня проблема с доступом к значению для данного ключа
Я получил этот файл CSV. Json может содержать некоторые ключи в некоторых записях и может отсутствовать в других. В основном существуют только обновленные поля.
ID;CHANGES
713422;[{"key":"zipCode","updatedValue":""},,{"key":"language","updatedValue":"EN"},{"key":"coaddress","updatedValue":""},{"key":"SSN","updatedValue":""},{"key":"msisdn","updatedValue":"1114455789"}]
114365;[{"key":"city","previousValue":"New York","updatedValue":"Palm City"},{"key":"zipcode","previousValue":"100012","updatedValue":"02118"},{"key":"coaddress","updatedValue":""},{"key":"streetaddress","previousValue":"9253 Del Monte Road"updatedValue":"90 Kent Ave"},{"key":"SSN","updatedValue":""},{"key":"companyName","previousValue":"Nutrics","updatedValue":"NutriTiger"}]
114365;[{"key":"zipCode","updatedValue":""},{"key":"coaddress","updatedValue":""},{"key":"SSN","updatedValue":""},{"key":"companyName","previousValue":"NutriTiger","updatedValue":"Nutri-Tiger"}]
713422;[{"key":"zipCode","updatedValue":""},{"key":"coaddress","updatedValue":"Roady Road"},{"key":"SSN","updatedValue":""},{"key":"msisdn","updatedValue":""}]
Что я хочу сделать, это что-то вроде этого.
В данных Json могут присутствовать 8 ключей, и мне нужно проверить, существует ли он, и получить значение, если оно есть.
$city
if (TryParse(Json.city.GetValue, $city )
{
CustomerData.$city = Json.city.GetValue
}
Вот то, чем я являюсь сейчас. Я застрял в операторе If, где я пытаюсь получить доступ к $ jsondata различными способами.
я пробовал
$ jsonData.city
$ JSonData.getValue ( 'город')
Различные виды конвейерной обработки $ jsonData и выбора
Но я просто не могу получить значение для данного ключа.
В конечном итоге мне нужно создать новый CSV-файл, в котором я ищу идентификатор, а затем обновить данное поле, например город, если он был обновлен.
class CustomerData
{
[int]$Id = 0
[string]$companyName = ""
[string]$ssn = ""
[string]$msisdn = ""
[string]$language = ""
[string]$city = ""
[string]$coaddress = ""
[string]$streetaddress = ""
[string]$zipCode = ""
}
$inputdata = ".\Testdata.csv"
$iso8859_1 = [System.Text.Encoding]::GetEncoding('ISO-8859-1')
$reader = New-Object -TypeName System.IO.StreamReader($inputdata, $iso8859_1)
[int]$counter = 0
while ($line = $reader.ReadLine() )
{
if ($counter -gt 0)
{
$lines_split = $line.Split(';')
CustomerData.$Id = $lines[0]
$jsondata = ConvertFrom-Json $lines[1]
}
$counter++;
}
$reader.Close()