61270


<https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#Issue_with_plain_JSON.stringify_for_use_as_JavaScript>

上記 javascript の、 `JSON.stringify` を見ていたのですが、そこで以下のような記述がありました。

>
> 配列以外のオブジェクトのプロパティでは、特定の順番で文字列化されることは保証されていません。文字列化された同じオブジェクトの中でプロパティの順番に依存しないようにしてください。

例えば、 stringify の結果を KVS のキーにしたいような場合、この性質はあまりいいものではありません。

### 質問

  * 同じ構造的な値を表す２つのオブジェクトが、同一の JSON 文字列に変換されるような stringify を実現するライブラリや手法などには、どのようなものがありますか？


CC BY-SA 4.0
2019-12-09T02:57:45.907
61251
2019-12-09T11:44:49.383
754
question
javascript node.js json
javascript で、同じ値のオブジェクトならば必ず同じ文字列になる stringify はどうやったら記述できる？


`json-stable-stringify` をお探しではありませんか？

<https://www.npmjs.com/package/json-stable-stringify>

[code]

    > var stringify = require('json-stable-stringify');
    undefined
    > var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 };
    undefined
    > stringify(obj);
    '{"a":3,"b":[{"x":4,"y":5,"z":6},7],"c":8}'
    
[/code]


CC BY-SA 4.0
2019-12-09T11:44:49.383
61270
2019-12-09T11:44:49.383
62
61251
answer