配列をJSONに変換


383

var cars = [2,3,..]いくつかの整数を保持する配列があります。配列にいくつかの値を追加しましたが、jQueryの.getメソッドを介してこの配列をページに送信する必要があります。送信用にJSONオブジェクトに変換するにはどうすればよいですか?


ちょうどダブルチェック:ページに送信する配列はJavaScript配列ですか、それともサーバー上ですか?
Ian Oxley、2010

これはJavaScript配列です。Pythonスクリプトに送信し、PythonはJSON文字列を使用してそれを処理します。
dotty

回答:


657

下位互換性のためのスクリプト:https : //github.com/douglascrockford/JSON-js/blob/master/json2.js

そして電話する:

var myJsonString = JSON.stringify(yourArray);

注: JSONオブジェクトは現在、ほとんどの最新のWebブラウザー(IE 8以上)の一部です。完全なリストについては、caniuseを参照してください。クレジットは以下に行く:@Spudley彼のコメントの下


5
これは機能しますが、jQueryにはこのような機能がありますか?jQueryにすでに関数がある場合は、別のjsファイルを添付しない方がいいです。
dotty

1
jQueryは1.4.1でJSON.parseの実装を備えていますが、JSON.stringifyは備えていません... json2.jsを小さくすると、<3kだと思います。
gnarf

6
ええ、私はjQueryにもこれが組み込まれていないことに
驚い

120
まだこの回答を読んでいる人にとっては、すべての最新のブラウザーにJSONオブジェクトが標準で含まれていることを指摘する価値があります。つまり、IE7やFirefox 3.0などの古いブラウザーをサポートする予定がない限り、このスクリプトは必要ありません。サポートチャートについては、CanIUseを参照してください。
Spudley 2013年

1
ブラウザコンソールでこれを行うことができることを指摘する価値があります。var a = [paste]; JSON.stringify(a)
マイケルコール

70

私はそのようにそれを作りました:

私が持っている場合:

var jsonArg1 = new Object();
    jsonArg1.name = 'calc this';
    jsonArg1.value = 3.1415;
var jsonArg2 = new Object();
    jsonArg2.name = 'calc this again';
    jsonArg2.value = 2.73;

var pluginArrayArg = new Array();
    pluginArrayArg.push(jsonArg1);
    pluginArrayArg.push(jsonArg2);

pluginArrayArg(純粋なJavaScript配列)をJSON配列に変換するには:

var jsonArray = JSON.parse(JSON.stringify(pluginArrayArg))

1
あなたは私の命を救った
MD。Shafayatul Haque


11

私はjson2ライブラリを使用することにし、「循環データ構造」についてエラーが発生しました。

複雑なオブジェクトの変換方法をjson2に指示することで解決しました。現在は機能しているだけでなく、必要なフィールドのみが含まれています。ここに私がそれをした方法があります:

OBJ.prototype.toJSON = function (key) {
       var returnObj = new Object();
       returnObj.devid = this.devid;
       returnObj.name = this.name;
       returnObj.speed = this.speed;
       returnObj.status = this.status;
       return returnObj;
   }

11

または、配列をオブジェクトとして定義してみてください。(var cars = {};)その後、jsonに変換する必要はありません。これはあなたの例では実用的ではないかもしれませんが、私にとってはうまくいきました。


4

もう1つの方法は次のとおりです。

        var json_arr = {};
        json_arr["name1"] = "value1";
        json_arr["name2"] = "value2";
        json_arr["name3"] = "value3";

        var json_string = JSON.stringify(json_arr);

1

尋ねたような1つのオブジェクトしかない場合は、次のように機能します。

var x = [{'a':'b'}];
var b= JSON.stringify(x);
var c = b.substring(1,b.length-1);
JSON.parse(c); 

1

整数の配列から有効なjsonを生成するために知っている最短の方法は、

let json = `[${cars}]`

より一般的なオブジェクト/配列(循環参照なし)には、JSON.stringify(cars)を使用します


1

私の配列は以下のようだったので:そして私は.push関数を使用して動的に作成しました

my_array = ["234", "23423"];

私の配列をjsonに変換する唯一の方法は

json = Object.assign({}, my_array);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.