配列を並べ替えることなくJSONを並べ替える必要があります。今、私は以下にこれをソートしたいJSONオブジェクトを並べ替えることなくJSONオブジェクトをソートする方法はありますか?
{
"objectid":"589a399724bd631d0424265a",
"mappingerrors":[
],
"timestamp":"UCT",
"models":[
{
"models4":"589a399724bd631d",
"models1":"AAAA",
"models3":"244",
"models5":"7ee92c958a051e66f19d6561575c5642",
"models2":"01945610",
"values":[
{
"11":"YYYY",
"1":"A",
"9":"B",
"5":"XXXX",
"3":2,
"10":239.804,
"6":"C",
"2":"D",
"4":"2017-02-03T21:53Z",
"8":"MSFT",
"7":"TTTT"
}
],
"models6":"2017-02-03T21:53Z"
}
]
}
:
{
"mappingerrors":[
],
"models":[
{
"models1":"AAAA",
"models2":"01945610",
"models3":"244",
"models4":"589a399724bd631d",
"models5":"7ee92c958a051e66f19d6561575c5642",
"models6":"2017-02-03T21:53Z",
"values":[
{
"1":"A",
"2":"D",
"3":"2",
"4":"2017-02-03T21:53Z",
"5":"XXXX",
"6":"C",
"7":"TTTT",
"8":"MSFT",
"9":"B",
"10":"239.804",
"11":"YYYY"
}
]
}
],
"objectid":"589a399724bd631d0424265a",
"timestamp":"UCT"
}
私は次のコードを使用してみましたが、それは適切な結果を与えていないJSONは次のようになります。
function sortObject(jsonObject) {
var sorted = {},
key, a = [];
for (key in jsonObject) {
if (jsonObject.hasOwnProperty(key)) {
a.push(key);
}
}
a.sort();
for (key = 0; key < a.length; key++) {
sorted[a[key]] = jsonObject[a[key]];
}
return sorted;
}
JSONオブジェクト内の配列を無視する方法はありますか?
これは意味をなさない。 JSONのオブジェクトは順序付けられた構造体ではありません。どうしてそれらを「ソート」したいのですか?また、*「適切な結果を与えない」*は[mcve]ではありません。 – jonrsharpe
JSONのテキスト表現は、オブジェクトのキーの順序付けを暗示しているという錯覚を与えます。 JavaScriptオブジェクトとJSON仕様ステートの両方で、それらが**順序付けられていないことを確認してください** [RFC7159](http://www.rfc-editor.org/rfc/rfc7159.txt) –
関連:[ソート/ JavaScriptオブジェクトの注文キー?](/ questions/9658690 /) – Stobor