我有一个名称列表,并使用它们作为json对象的键,但是,有时候,键可能包含双引号,如下所示:
var parts = {
Expando Sleeve 1/4": [
{
id:"45", name:"TEST REPORT", partID:"4"
},
{
id:"15", name:"01-077512", partID:"4"
}]
};
所以,我在这里遇到的问题是我的名字是Expando Sleeve 1/4"
,这就是我需要的,但我把它存储在页面上的隐藏输入元素中,如:{{ 1}}
所以我做一个ajax调用,而不是使用隐藏输入元素的值...就像这样将响应值添加到全局<input type="hidden" value="Expando Sleeve 1/4"" name="partName" />
数组......
parts
这里的问题是它将密钥添加到json对象var $val = $('input[name="partName"]').val();
if (!parts.hasOwnProperty($val))
parts[$val] = [];
parts[$val].push(response[$val]);
中,如下所示:
parts
代替parts[Expando Sleeve 1/4\"]
部分。所以我在努力学习如何在这里取消双引号,并设置如下关键字:[Expando Sleeve 1/4"]
。
我怎样才能做到这一点?
答案 0 :(得分:1)
在JSON中使用双引号HTML字符"
。
var parts = {
"Expando Sleeve 1/4"": [
{
id:"45", name:"TEST REPORT", partID:"4"
},
{
id:"15", name:"01-077512", partID:"4"
}];
};
答案 1 :(得分:1)
在Chrome控制台中一切正常:
var obj = {};
var val = "Expando Sleeve 1/4\"";
obj[val]="x";
console.log(obj)
//console >> Object {Expando Sleeve 1/4": "x"}
另一种选择:
var parts = {
"Expando Sleeve 1/4\"": [
{
id:"45", name:"TEST REPORT", partID:"4"
},
{
id:"15", name:"01-077512", partID:"4"
}]
};
console.log(parts)
//console >>
//Object Expando Sleeve 1/4": Array(2)
//__proto__ : Object
好像是jquery问题
<强> UPD:强> 它的html-safety&#34;问题&#34;,工作解决方案:
$('<input value="escape""/>').val()
答案 2 :(得分:0)
您可以使用字符文字引号(')将JSON键保存为字符串
var parts = {
'Expando Sleeve 1/4"': [
{
id:"45", name:"TEST REPORT", partID:"4"
},
{
id:"15", name:"01-077512", partID:"4"
}]
};
答案 3 :(得分:0)
从值
替换双引号
var infoWindow = new google.maps.InfoWindow;
// open info window
var onMarkerClick = function() {
var marker = this;
infoWindow.setContent( marker.details );
infoWindow.open(map, marker);
mkmap.lastmarkeropened = marker;
};
// close the info window
google.maps.event.addListener(map, 'click', function() {
infoWindow.close();
});
var marker = [] ;
// loop start
for(i=0; i < data.length; i++){
console.log(data[i].eventLocation + " OF TYPE " + data[i].eventType);
if(data[i].eventName != ""){
title = data[i].eventName;
}
if(data[i].eventDetails != ""){
details = data[i].eventDetails;
}
if(data[i].eventLocation == "Location 1"){
lati = -29.651409;
lngi = 82.342909;
}
else if(data[i].eventLocation == "Location 2"){
lati = -29.637712;
lngi = 82.368024;
}
else if(data[i].eventLocation == "Location 3"){
lati = -29.650533;
lngi = 82.342684;
}
else{
lati = -29.645793;
lngi = 82.347717;
console.log(data[i].eventLocation + " not found");
}
marker[ i ] = new google.maps.Marker({
position: {lat: lati, lng: lngi},
title : title,
map: map,
icon: image,
details: details
});
// attach event to open info window
google.maps.event.addListener(marker[ i ], 'click', onMarkerClick );
} // end loop
&#13;