如何通过解析以下JSON来获取值
[
{
display: "Start Date",
name: "Start_Date_vod__c"
},
{
display: "End Date",
name: "End_Date_vod__c"
},
{
display: "Phase",
name: "Phase__c"
},
{
display: "Clinical Trial Name",
name: "Name"
},
{
display: "Role",
name: "Role__c"
}
]
我想像这样创建一个JSOn数组: fieldLabels.push({labelName:“HCP_credentialsLabel”,labelValue:results [“Role__c”]。display});
答案 0 :(得分:0)
你说过
但这是库函数的输出所以不能对其结构进行任何更改,我们只需要在这个结构上工作
好吧,库函数不生成JSON。如果结构可靠地采用您所描述的形式,则可以删除前导{
并尾随}
,将其打包在()
中,然后将其传递给eval
,但从不对不受信任的数据使用eval
,因为它允许任意代码执行。
如果您信任数据来源,那就相当容易了:
var str = /*...your data string...*/;
// Remove the first { and last }, wrap in ()
str = "(" + str.trim().replace(/(?:^{)|(?:}$)/g, "") + ")";
// Parse it -- DO NOT USE eval ON UNTRUSTED DATA
var array = eval(str);
直播示例:
var str = '{' +
'[' +
' {' +
' display: "Start Date",' +
' name: "Start_Date_vod__c"' +
' },' +
' {' +
' display: "End Date",' +
' name: "End_Date_vod__c"' +
' },' +
' {' +
' display: "Phase",' +
' name: "Phase__c"' +
' },' +
' {' +
' display: "Clinical Trial Name",' +
' name: "Name"' +
' },' +
' {' +
' display: "Role",' +
' name: "Role__c"' +
' }' +
']}';
str = "(" + str.trim().replace(/(?:^{)|(?:}$)/g, "") + ")";
var array = eval(str);
// Then use the array, for instance
array.forEach(function(entry) {
console.log(entry.display);
});
答案 1 :(得分:-2)
这是无效的JSON,因为数组没有密钥。这应该解决它:
{ arr: [ ... ] }
然后,您可以通过索引访问每个元素。例如。 obj.arr [0]。显示