1. ホーム
  2. ジャバスクリプト

[解決済み】JSON.stringifyの結果に追加された$$hashKeyは何ですか?

2022-03-31 19:10:20

質問

を見てみました。 Mozilla JSON の文字列化 のページや、SOやGoogleで調べてみましたが、説明は見つかりませんでした。私は JSON.stringify このような結果は初めてです。

JSONオブジェクトの配列を持っています。

[
    {
        "param_2": "Description 1",
        "param_0": "Name 1",
        "param_1": "VERSION 1"
    },
    {
        "param_2": "Description 2",
        "param_0": "Name 2",
        "param_1": "VERSION 2"
    },
    {
        "param_2": "Description 3",
        "param_0": "Name 3",
        "param_1": "VERSION 3"
    }
]

に付いているのですが、私の $scope . のために POST を1つのパラメータとして使用するようにしました。 JSON.stringify() メソッドを実行し、次のように受け取ります。

   [
        {
            "param_2": "Description 1",
            "param_0": "Name 1",
            "param_1": "VERSION 1",
            "$$hashKey": "005"
        },
        {
            "param_2": "Description 2",
            "param_0": "Name 2",
            "param_1": "VERSION 2",
            "$$hashKey": "006"
        },
        {
            "param_2": "Description 3",
            "param_0": "Name 3",
            "param_1": "VERSION 3",
            "$$hashKey": "007"
        }
    ]

がどうなっているのかが気になるところです。 $$hashkey プロパティから、もっと次のようなものを期待していました。 stringify メソッド(つまり $$hashkey ):

[
    {
        "1":{
            "param_2": "Description 1",
            "param_0": "Name 1",
            "param_1": "VERSION 1"
        },
         "2":{
            "param_2": "Description 2",
            "param_0": "Name 2",
            "param_1": "VERSION 2"
        },
         "3":{
            "param_2": "Description 3",
            "param_0": "Name 3",
            "param_1": "VERSION 3"
        }
    }
]

要因かどうかは分かりませんが、私は以下のように使っています。

  • Angularjs 1.1.5。
  • JQuery 1.8.2
  • Spring 3.0.4

また、Server側にはSpring security 3.0.7を使用しています。

特に問題は発生していないのですが、原因や理由を知りたいです。 $$hashkey

解決方法を教えてください。

Angularはあなたの変更を追跡するためにこれを追加し、DOMを更新する必要があるときを知ることができるようにします。

を使用する場合 angular.toJson(obj) の代わりに JSON.stringify(obj) を指定すると、Angularはこれらの内部使用値を取り除いてくれます。

また、リピート表現を変更して track by {uniqueProperty} を追加する必要はありません。 $$hashKey を使用します。例えば

<ul>
    <li ng-repeat="link in navLinks track by link.href">
        <a ng-href="link.href">{{link.title}}</a>
    </li>
</ul>

ただ、quot;link."という表現が必要なことだけは、いつも忘れてしまいがちなのですが。 ただ track by href はきっとうまくいかない。