有人可以提示我如何提取基于字符串的自定义键值格式的
NC
值,这是以下数据结构的domainDetails
相关值...
{
notAfterTimeStamp: 123456787,
notBeforeTimeStamp: 123435637,
domainDetails: 'NC=test.com,O=xyz,L=uvw,C=AS',
Requested: 'CN=issuer Private Test CA ,OU=abc,OU=Testing',
}
我尝试从
NC
中提取和打印 domainDetails
的值,如下所示。但是我尝试的结果是undefined
.
console.log("domainDetails:"+JSON.stringify(response.data.domainDetails.NC));
从我上面的评论...
“没有真正的复杂性,问题与 JSON 几乎没有任何关系……这一切都归结为如何从字符串(这里
)中解析特定值(这里NC
)”"NC=test.com,O=xyz,L=uvw,C=AS"
一种直接的解析方法,它完全涵盖了
domainDetails
值的自定义模式分别 Requested
看起来像这样......
Object
.fromEntries(
'NC=test.com,O=xyz,L=uvw,C=AS'
.split(',')
.map(customEntry => customEntry.split('='))
)['NC']
split
是任何出现的逗号处的字符串。通过在 map
字符处拆分每个自定义条目,结果数组被
=
ped 到键和值项的数组中。
Object.fromEntries
创建一个对象,OP最终可以访问OP正在寻找的特定值......在这里通过使用NC
-key.
考虑到 OP 的数据结构的可执行示例代码将如下所示......
const responseData = {
notAfterTimeStamp: 123456787,
notBeforeTimeStamp: 123435637,
domainDetails: 'NC=test.com,O=xyz,L=uvw,C=AS',
Requested: 'CN=issuer Private Test CA ,OU=abc,OU=Testing',
};
const parsedResponseData = Object
.assign({}, responseData, {
domainDetails: Object.fromEntries(
responseData.domainDetails
.split(',')
.map(customEntry => customEntry.split('='))
)
});
const nc = parsedResponseData.domainDetails.NC
console.log({
responseData,
parsedResponseData,
nc,
});
.as-console-wrapper { min-height: 100%!important; top: 0; }