2016-09-09 4 views
-1

サーバーからの応答を受信して​​いるときに問題が発生しています。AngularJS JSON注文

{ "33":{ "ID":」... " "名前":JSONは、以下の構造(Iナビゲータからネットワーク上で見ることができるように)を有しています" ... " }、 "11":{ "ID":" ... " "名前":" ... " }、 "22":{ "ID":" ...」 、 「名前」:私は応答を含む変数を見ると、「...」 }}

しかし、構造が変化し、このように命じている。

{ "11":{ "ID": "... " "名前":" ..." }、 "22":{ "ID": "..." 、 "名前": "..." }、 "33":{ "ID": "... " "名前":" ..." }}

あり

私は、angularJSの要求の成功したコールバックからの可変応答を受け取ったときに、実際の応答と同じ順序を取ることに多少なりともかかりますか?

ありがとうございます!

+0

サーバー? nodejsを使用していますか? –

+0

こんにちは、サーバーは他のサイトによって開発されていますが、PHP + NGINX – user3429953

+0

Nullを使用しています。あなたは物を取り戻しています、キーは数になります。オブジェクトは順序付けられていないセットです。順序が重要な場合は、JavaScript配列を使用する必要があります。 – user1852503

答えて

2

オブジェクトは、名前が文字列であり、ゼロ以上の名前/値 組の順序付けられていないコレクションであり、値はストリング、数、 ブール値、ヌル、オブジェクトであります、またはアレイ。

JSONのオブジェクトは明示的に順序付けられていません。注文が必要な場合は、代わりに配列を使用してください。

+0

パヴェル氏は、他のコメントで述べたように、私が話しているオブジェクトはそのオブジェクトに解析されたJSONであるため、配列を使用できないと思います。そして、私はどんな制限にも従って注文する必要はなく、サーバーからの応答と同じ注文をするだけです。 – user3429953

+0

@ user3429953 - サーバーからの応答には注文がありません。それはあなたにオブジェクトを送ります。オブジェクトは明示的に順序付けされていません。それが注文をするためには、サーバーはオブジェクトの代わりに配列を送る必要があります。 – Quentin

+0

ok!答えをありがとう、私はついに皆さんのお話を理解しています。 – user3429953

-1

でサーバ側のデータを取得する必要があります。です。 the specから

-1

JSONが解析されると、それはオブジェクトに変わります。オブジェクトのオブジェクトの順序では、予測可能な方法でソートされません。

旧オブジェクトではなく、配列を使用してください:

{ "33": { "id": "...", "name":"..." }, "11": { "id": "...", "name":"..." }, "22": { "id": "...", "name":"..." } } 

新規:

{ [{ "id": "33", "name":"..." }, { "id": "11", "name":"..." }, { "id": "22", "name":"..." }] } 

は今、あなたは、あなたがそれを置くとまったく同じ順序で配列を持っています。あなたのデータを操作するには、Lodashを使用します。おそらく

本の重複: JSON order mixed up