是否可以将javascript数组存储在json中? [复制]

Posted

技术标签:

【中文标题】是否可以将javascript数组存储在json中? [复制]【英文标题】:is it possible to store javascript array in json? [duplicate] 【发布时间】:2012-09-27 06:32:46 【问题描述】:

可能重复:Convert javascript Array to JSON

我想弄清楚如何返回一个数组并将其作为字符串存储在 json 变量中,这可能吗? [如果没有,我怎样才能返回所有输出并将其存储为 json?] - 如果你知道我的意思......

    //arr = ["a", "b", "c", "d", "ddd"]
    //largest = 3
    var generateEntryCodes = function(arr, largest) 
        var newText = ""
        for(var i=0; i < arr.length; i++) 
            if (arr[i] == null) 
                arr.splice(i, 1);
                i--;
            
            var counts = arr[i].length != largest ? (parseInt(largest) - parseInt(arr[i].length)) : 0
            for (var z=0; z<counts;z++)
                newText += "0"
            var result = arr[i].splice( 0, 0, newText )
            newText = ""
            result = [
                "result": result, 
                "total": result.length
            ]
        
        return result
    

我尝试将上面的代码输出为:

00a
00b
00c
00d
ddd

但是当我闪现结果 json 时。我只得到“ddd”...所以我尝试在 result = [] jSON 代码之前添加:

$("textarea").val( $("textarea").val("") + result + "\n")
//outputs:
   00a
   00b
   00c
   00d
   ddd

如何从 result 变量中获取所有输出并将其存储在 JSON 变量中。

问题:代码仅将最后一个数组存储到 JSON 中。

【问题讨论】:

Convert Javascript Array to JSON 和 Convert JS object to JSON string 的可能重复项。 【参考方案1】:

一般来说,您可以简单地构造您的 JavaScript 对象,然后将其序列化为 JSON,如下例所示:

var myArray = ['a','b','c'];
var jsonString = JSON.stringify(myArray);

应该可以。请注意,您可能必须包含 JSON2.js,以防您的浏览器本身不支持它。

//编辑: 那应该可以:http://jsbin.com/welcome/31083/edit

代码如下:

var generateEntryCodes = function(arr, largest) 
        var newText = "",
            codes = [],
            currentElement,
            result;


        for(var i=0; i < arr.length; i++) 
          currentElement = arr[i];

          var zerosToPrepend = largest - currentElement.length;
          for (var z = 0; z < zerosToPrepend; z++)
                newText += "0"
          

          currentElement = newText + currentElement;
          codes.push(currentElement);    

          newText = ""
        

      result = 
        codes: codes,
        total: codes.length
      ;

        return result
    


var result = generateEntryCodes(["a", "b", "c", "d", "ddd"], 3);
console.log(result);

这应该返回一个如下所示的 JavaScript 对象:

"codes": ["00a", "00b", "00c", "00d", "ddd"], "total": 5

然后您可以获取该结果并使用 JSON.stringify(...) 将其转换为 JSON 字符串。

【讨论】:

谢谢伙计,但 result 变量不是一个数组,而是一组字符串:“00a 00b 00c 00d ddd” 然后你可以做一个result.split(' ') 再次给你一个数组。但是最好修改你的generateEntryCodes函数。 对不起,不是“”而是“[”,我的错。我尝试使用 split("\n") 因为代码 var result = arr[i].splice( 0, 0, newText ) 输出“00a 00b 00c 00d”(每行)...请尝试运行代码 嗯...我会修改该功能,因为我在那里发现了很多错误。你想用它达到什么目的??你期望的结果是什么? 我希望 json 结果变量为 Array => 结果:“00a 00b 00c 00d ddd”,总计:5【参考方案2】:

如果你有 aaa bbb ccc 这样的字符串,那么首先将其转换为数组

var str="aaa bbb ccc ddd";
var n=str.split(" ");

现在可以使用JSON.stringify(string)将字符串转成json

var myjson=JSON.stringify(n);

【讨论】:

所以我尝试使用它 result = [ "result": JSON.stringify(result), "total": result.length ] 仍然给我一个输出 ""ddd"" 对不起,我的坏人,请尝试运行代码。 arr 变量不是字符串而是数组

以上是关于是否可以将javascript数组存储在json中? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将Javascript数组作为Json与html表单结合发送?

是否可以使用 Spring Boot 将嵌套的 Json 数组存储到数据库?

javascript 在JSON中存储JavaScript数组

javascript 在JSON中存储JavaScript数组

如何将数组存储在javascript文件中

javascript多个数组转换成json