1

重複の可能性:
Javascript配列を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」しか表示されないので、結果の前に追加してみました= [{}] jSONコード:

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

結果変数からすべての出力を取得してJSON変数に保存するにはどうすればよいですか?

問題:コードは最後の配列のみをJSONに保存します。

4

2 に答える 2

6

一般的に言えば、以下の例のように、JavaScriptオブジェクトを作成し、それをJSONにシリアル化するだけです。

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

それはうまくいくはずです。ブラウザがJSON2.jsをネイティブにサポートしていない場合に備えて、 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文字列に変換するために使用できます。

于 2012-10-06T06:55:01.317 に答える
1

最初のような文字列がある場合はaaa bbb ccc、それを配列に変換します

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

JSON.stringify(string)文字列をjsonに変換するために使用できるようになりました

var myjson=JSON.stringify(n);
于 2012-10-06T06:51:46.307 に答える