javascript - 是否可以在 json 中存储 javascript 数组?

标签 javascript jquery json dom

<分区>

Possible Duplicate:
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 中。

最佳答案

一般来说,您可以简单地构造您的 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 字符串。

关于javascript - 是否可以在 json 中存储 javascript 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12757482/

相关文章:

javascript - 如何检测 css 模态之外的点击?

java - 无法解析 'read' 中的方法 'JsonPath'

Javascript - 将 HTML 标签从 textarea 替换为 div

javascript - 如何在触摸时向上/向下滑动 div?

jquery - 更改已检查的元素(父元素未共享)

ios - Error Domain=NSCocoaErrorDomain Code=3840 在Swift5中解析JsonString时

php - 按日期比较不同表中的行数

javascript - 正则表达式仍然允许末尾有小数

javascript - 使用变量增量在 Javascript 中创建新变量

javascript - 使用 jquery 测试事件序列