回答:
下位互換性のためのスクリプト:https : //github.com/douglascrockford/JSON-js/blob/master/json2.js
そして電話する:
var myJsonString = JSON.stringify(yourArray);
注: JSONオブジェクトは現在、ほとんどの最新のWebブラウザー(IE 8以上)の一部です。完全なリストについては、caniuseを参照してください。クレジットは以下に行く:@Spudley彼のコメントの下
JSON
オブジェクトが標準で含まれていることを指摘する価値があります。つまり、IE7やFirefox 3.0などの古いブラウザーをサポートする予定がない限り、このスクリプトは必要ありません。サポートチャートについては、CanIUseを参照してください。
私はそのようにそれを作りました:
私が持っている場合:
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))
うわー、今日はずっと楽になったようです...それを行うための3つの方法:
json = { ...array };
json = Object.assign({}, array);
json = array.reduce((json, value, key) => { json[key] = value; return json; }, {});
jsonString = JSON.stringify({ ...array })
私は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;
}
または、配列をオブジェクトとして定義してみてください。(var cars = {};)その後、jsonに変換する必要はありません。これはあなたの例では実用的ではないかもしれませんが、私にとってはうまくいきました。
尋ねたような1つのオブジェクトしかない場合は、次のように機能します。
var x = [{'a':'b'}];
var b= JSON.stringify(x);
var c = b.substring(1,b.length-1);
JSON.parse(c);
整数の配列から有効なjsonを生成するために知っている最短の方法は、
let json = `[${cars}]`
より一般的なオブジェクト/配列(循環参照なし)には、JSON.stringify(cars)を使用します
私の配列は以下のようだったので:そして私は.push関数を使用して動的に作成しました
my_array = ["234", "23423"];
私の配列をjsonに変換する唯一の方法は
json = Object.assign({}, my_array);