#json #typescript #angular8
Вопрос:
Приведенный ниже (строка) возвращает массив JSON динамически в форме (строки):
let test = '{ "UserDepartmentName": { "OldValue":"Abc123", "NewValue": "Abc123456" }, "ModifiedDate": { "OldValue":"5/19/2021 12:37:22 PM", "NewValue": "5/24/2021 4:12:21 PM" } }'
}'
console.log(test)
Мне нужно преобразовать эту (строку) в (массив JSON), чтобы извлечь данные, как показано ниже:
{
"UserDepartmentName":{
"OldValue":"Abc123",
"NewValue":"Abc123456"
},
"ModifiedDate":{
"OldValue":"5/19/2021 12:37:22 PM",
"NewValue":"5/24/2021 4:12:21 PM"
}
}
Для этого я использовал приведенную ниже технику, но первое значение UserDepartmentName не отображается:
jsonconvert(json) {
const obj = JSON.parse('{ "UserDepartmentName": { "OldValue":"Abc123", "NewValue": "Abc123456" }, "ModifiedDate": { "OldValue":"5/19/2021 12:37:22 PM", "NewValue": "5/24/2021 4:12:21 PM" } }');
console.log(json);
for (var i in obj) {
console.log(obj[i]);
}
}
Как преобразовать (строковое) значение в (массив JSON) с помощью (машинописного текста в Angular 8)?
Примечание:
- Строковые данные являются динамическими, и каждый раз они будут меняться
- Первое значение в строке всегда меняется
- Старое значение и новое значение всегда находятся под одним из объектов
Ответ №1:
Если вы войдете console.log(obj)
в систему, вы увидите, что она анализируется. Если я запущу ваш код, он действительно зарегистрирует значение «Имя пользователя», но не сам ключ:
{OldValue: "Abc123", NewValue: "Abc123456"}
{OldValue: "5/19/2021 12:37:22 PM", NewValue: "5/24/2021 4:12:21 PM"}
Если вы хотите зарегистрировать ключ, вы можете выполнить итерацию следующим образом:
for (var i in obj) {
console.log(i '= ', obj[i]);
}