Javascript 使用Jquery以适当的格式构造JSON
我正在尝试将动态创建的JSON输出重新格式化为x-editable select type源[]可以使用的格式。我需要帮助构建数组,以便重新格式化的JSON输出如下所示:Javascript 使用Jquery以适当的格式构造JSON,javascript,jquery,json,x-editable,Javascript,Jquery,Json,X Editable,我正在尝试将动态创建的JSON输出重新格式化为x-editable select type源[]可以使用的格式。我需要帮助构建数组,以便重新格式化的JSON输出如下所示: {value: 2, name: 'Maintenance'}, {"value":2,"name":["Maintenance"]} 下面是我正在使用的原始JSON示例: {"COLUMNS":["SECTIONCOMMONNAME"],"DATA":[["Aircraft Overview"],["Email Serv
{value: 2, name: 'Maintenance'},
{"value":2,"name":["Maintenance"]}
下面是我正在使用的原始JSON示例:
{"COLUMNS":["SECTIONCOMMONNAME"],"DATA":[["Aircraft Overview"],["Email Server Settings"],["Maintenance"],["Page Sections"],["WOW"]]}
我使用的代码是:
$(document).ready(function () {
var myURL = 'https://api.myjson.com/bins/3nzdj';
var myarray = [];
$.ajax({
url: myURL,
dataType: 'json',
success: function (e) {
console.log('My created console output:' +'<br>');
$.each(e.DATA, function (i, jsonDataElem) {
console.log("{value: " + i + ', ' + "name: " + '"'+this+"'}");
var item = {
"value": i,
"name": this
};
myarray.push(item);
});
var newJson = JSON.stringify(myarray);
console.log('My stringify output:' +'<br>' +newJson);
}
});
$('.sectionsAvailable').editable({
name: 'template',
type: 'select',
placement: 'right',
send: 'always',
value: 1,
source: [], //newJson (my new var)
/* should be in this format:
source: [{
value: 1,
text: 'text1'
}, {
value: 2,
text: 'text2'
}]*/
});
};
需要像这样
{value:2,name:'Maintenance'},
下面是一个示例,显示了这里的输出 您似乎正在分配完整数组,而不是索引0处的值。请尝试以下操作
var item = {
"value": i,
"name": this[0] // gives elemnt at index 0
};
myarray.push(item);
我能够回答我自己的问题。也许有更好的方法,但这是可行的:
var myURL = 'https://api.myjson.com/bins/3nzdj';
$.getJSON(myURL, function(data) {
var output = '';
$.each(data.DATA, function(key, val) {
output +='{value: ';
output += "'"+key+"'";
output +=',text:';
output += "'"+val+"'";
output +='}';
output +=',';
});
var outputAdapted = '['+output+']'
$('.sectionsAvailable').editable({
name: 'template',
type: 'select',
placement: 'right',
send: 'always',
value: 1,
// should be in this format:
source:
function() {
return outputAdapted;
},
});
});
我希望这能帮助别人
“名称”:此[0]
?谢谢,它确实有帮助,但名称值仍被引用。公平地说,我需要更新JSFIDLE。请再看一次……是的,它被引用是因为它是一个字符串。您不能在不破坏json的情况下取消引用它们。如果你想要{value:0,name:Aircraft Overview}
你就完了,这是无效的。谢谢。这有所帮助,但名称值仍被引用。是否有方法使用eval()删除带引号的名称和值属性。我更新了mu FIDDLE以反映这一点。删除引号的用例是什么,根据joson规范,如果您想作为JSON使用,最好保留引号