我得到这样的字符串。
我做了类型,我把它作为字符串
字符串非常大,所以我发布了它的一部分。
[System.SelectOption[value="account__c", label="Account", disabled="false"], System.SelectOption[value="account_owner__c", label="Account Owner", disabled="false"], System.SelectOption[value="accountname__c", label="Business Name", disabled="false"]]
我需要的是Json或它的数组。请帮助。
答案 0 :(得分:2)
这是你要找的吗?
此代码实质上将字符串转换为键值对数组。
JSFiddle Link:http://jsfiddle.net/Dap6C/2/
var x = '[System.SelectOption[value="account__c", label="Account", disabled="false"], System.SelectOption[value="account_owner__c", label="Account Owner", disabled="false"], System.SelectOption[value="accountname__c", label="Business Name", disabled="false"]]';
x = x.substring(0, x.length - 1).substring(1, x.length).replace(/System.SelectOption/g,"");
var xp = x.substring(0, x.length - 1).substring(1, x.length).replace(/, /g,",");
var y = xp.split('],[');
var mainarray = [];
for(var i=0;i<y.length;i++){
var z = y[i].split(',');
var elements = [];
for(var j=0;j<z.length;j++){
var m = z[j] ;
m =m.split('=');
elements[m[0]] = m[1];
}
mainarray.push(elements);
}
var samplelement = mainarray[0];
document.write("<b>Sample output saved as key-value pairs = </b><br/>"+ "<b>value is </b> " + samplelement.value + "<b>and label is </b> "+ samplelement.label + ' ');
答案 1 :(得分:1)
我知道这已经过时了,我猜你已经解决了你的问题,但是我只需要做类似的事情并给出这个HTML和jQuery(仅仅因为):
<p><strong>Raw SF SelectOption data:</strong></p>
<div id="sfData"></div>
<p><strong>SF data converted to string with an array of objects using Regex:</strong></p>
<div id="sfDataToStr"></div>
<p><strong>SF data converted to proper array of Objects:</strong></p>
<div id="strToObj"></div>
这个JavaScript:
var sfData =
'[System.SelectOption[value="-- None --", label="-- None --", disabled="false"],' +
' System.SelectOption[value="Special 1", label="Special 1", disabled="false"],' +
' System.SelectOption[value="Special 2", label="Special 2", disabled="false"],' +
' System.SelectOption[value="Special 3", label="Special 3", disabled="false"]]';
$(function(){
$("#sfData").
append(sfData).
prepend($("<p></p>", {
"text": "TYPE: " + typeof sfData}));
var sfDataToStr = sfData.
replace(/System.SelectOption\[(\w+)=/g, "{\"$1\":").
replace(/\],\s?/g, "},").
replace(/\",\s?(\w+)=/g, "\",\"$1\":").
replace(/\]\]/g, "}]");
$("#sfDataToStr").
append(sfDataToStr).
prepend($("<p></p>", {
"text": "TYPE: " + typeof sfDataToStr}));
var strToObj = JSON.parse(sfDataToStr);
$("#strToObj").
append(JSON.stringify(strToObj)).
prepend($("<p></p>", {
"text": "TYPE: " + typeof strToObj}));
});
我设法以我很满意的形式获取数据。
我猜你是否回应了一系列SalesForce SelectOption对象并希望在JavaScript中使用它们?我不确定SalesForce是否有一种本地方式可以回应出正确的JSON,但这种方法适用于我的目的...希望它有所帮助。
使用JSFiddle链接:http://jsfiddle.net/annoyingmouse/02668Ld4/