[英]Validate file field html tag file name, If it contain special character
[英]Access to a field with name having a special character
我有一個查詢函數,返回一個JSON對象,如下所示:
[
{
"ID":{
"value":"a04c0000008KH4R",
"display":"a04c0000008KH4R",
"dataType":"string",
"label":"Record ID"
},
"Account_vod__c":{
"value":"001c000001BCLKfAAP",
"display":"001c000001BCLKfAAP",
"dataType":"string",
"label":"Account"
},
"Account.ID":{
"value":"001c000001BCLKfAAP",
"display":"001c000001BCLKfAAP",
"dataType":"string",
"label":"Record ID"
},
"Account.FirstName":{
"value":"Abdi",
"display":"Abdi",
"dataType":"string",
"label":"FirstName"
}
}
]
在控制台中,我想使用以下命令打印值:
console.log(JSON.stringify(k.data[0].Account.FirstName));
但這會引發錯誤:
未捕獲的TypeError:無法讀取未定義的屬性“ FirstName”
但是對於ID
字段,它可以正常工作:
console.log(JSON.stringify(k.data[0].ID));
a04c0000008KH4R
有什么方法可以解析JSON元素,且字段名稱帶有“。”。 或其中的另一個特殊字符,例如Account.FirstName
?
您需要遵循以下步驟:
console.log(JSON.stringify(k.data[0]['Account.FirstName']));
是,
您將要為此使用括號符號,而不是點符號,這是您當前正在使用的符號。 嘗試這個:
console.log(JSON.stringify(k.data[0]["Account.FirstName"]));
這樣,您將使用存儲在JSON中的值(使用名為“ Account.FirstName”的鍵)來尋址該值,而不是將其作為具有FirstName屬性的Account對象尋址。
在這里出現錯誤是因為您試圖以JS解釋為另一個嵌套對象的方式訪問對象屬性。 在這里使用括號表示法會起作用,將對象鍵更改為不使用'。 作為分隔符也將起作用。
const data = '[
{
"ID":{
"value":"a04c0000008KH4R",
"display":"a04c0000008KH4R",
"dataType":"string",
"label":"Record ID"
},
"Account_vod__c":{
"value":"001c000001BCLKfAAP",
"display":"001c000001BCLKfAAP",
"dataType":"string",
"label":"Account"
},
"Account.ID":{
"value":"001c000001BCLKfAAP",
"display":"001c000001BCLKfAAP",
"dataType":"string",
"label":"Record ID"
},
"Account.FirstName":{
"value":"Abdi",
"display":"Abdi",
"dataType":"string",
"label":"FirstName"
}
}
]';
let parse = JSON.parse(data);
/*
This will trigger the error you get:
console.log(JSON.stringify(parse.Account.FirstName));
JS will interpret this as:
parse: {
Account: {
FirstName: 'value'
}
}
*/
console.log(JSON.stringify(parse['Account.FirstName']));
/*
JS will interpret this correctly as
parse: {
'Account.FirstName': 'value'
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.