如何在TypeScript Angular 8中动态地从普通字符串转换为JSON数组



下面(string)以(string)的形式动态返回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]);
}

}

如何使用(Angular 8中的TypeScript)将(string)值转换为(JSON数组)?

注意:

  • 字符串数据是动态的,每次都会被更改
  • 字符串中的第一个值总是变化的
  • OldValue,NewValue总是在对象
  • 下面

如果您记录console.log(obj),您可以看到它正在被解析。如果我运行你的代码,它实际上记录了'UserDepartmentName'的值-但不是它自己的键:

{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]);
}

最新更新