Why it doesn't work?

作業のメモ、記録をブログに残しています。

JavaScript JavaScriptのオブジェクトをJSON文字列に変換する

GeoJSONファイルを追加でDrag&Drop出来るようにする - Why it doesn't work?で記載した通り、複数のGeoJSONデータを結合して一つのMAP上に表示することが出来ました。ただ、このままではまた複数のファイルをDrag&Dropする必要があるため、一つのGeoJSONフォーマットのファイルとして出力(ダウンロード)出来るようにしたいと考えています。

JavaScriptのオブジェクトをJSON文字列に変換するにはJSON.stringify()を使用します。
いつも使用しているデータを抜粋してサンプルとして使用します。

features = [
{
  "geometry": {
    "type": "Point", 
    "coordinates": [
      139.665936, 
      35.584047, 
      14.0
    ]
  }
}
console.log(features);
console.log(JSON.stringify(features));

実行結果は以下の通りとなります。

Array [Object { geometry: Object { type: "Point", coordinates: Array [139.665936, 35.584047, 14] } }]
"[{"geometry":{"type":"Point","coordinates":[139.665936,35.584047,14]}}]"

このままではデータが多くなると見辛くなってしまうため、第三引数でインデント数を指定します。タブでインデントをする必要があれば、数値の代わりに”¥t”を指定することも可能です。

console.log(JSON.stringify(features, null, 2));

これで、以下のように成型されます。

[
  {
    "geometry": {
      "type": "Point",
      "coordinates": [
        139.665936,
        35.584047,
        14
      ]
    }
  }
]