首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Jquery以适当的格式构造JSON

用Jquery以适当的格式构造JSON
EN

Stack Overflow用户
提问于 2015-03-17 08:26:24
回答 2查看 63关注 0票数 0

我正在尝试将动态创建的JSON输出重新格式化为x可编辑的选择类型source[]可以使用的格式。我需要帮助构建数组,以便重新格式化的JSON输出如下所示:

代码语言:javascript
运行
复制
{value: 2, name: 'Maintenance'},

下面是我正在使用的原始JSON示例:

代码语言:javascript
运行
复制
{"COLUMNS":["SECTIONCOMMONNAME"],"DATA":[["Aircraft Overview"],["Email Server Settings"],["Maintenance"],["Page Sections"],["WOW"]]}

我使用的代码是:

代码语言:javascript
运行
复制
$(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'
    }]*/

});


};

});

在字符串化之后,输出接近,但无法工作。看起来是这样的:

代码语言:javascript
运行
复制
{"value":2,"name":["Maintenance"]}

需要看起来像thisL

代码语言:javascript
运行
复制
{value:2,name:'Maintenance'},

这里是一个显示输出的JSfiddle

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-19 20:13:55

我能够回答我自己的问题。也许有更好的方法,但这是可行的:

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

发布于 2015-03-17 08:32:37

在索引0处,您似乎正在分配完整数组而不是值,请尝试如下

代码语言:javascript
运行
复制
 var item = {
              "value": i,
              "name": this[0] // gives elemnt at index 0
            };
  myarray.push(item);

小提琴

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29094328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档