0

私が開発しているアプリケーションで次のことが起こっている理由を見つけるのに苦労しています:

だから私は彼のコンテンツを読み込んでローカルストレージに保存したいJSONファイルを読みます.chromeアプリではchrome.storage.localです

だから私はjsonファイルから以下を取得します:

{
  "schedule": {
    "id": "416a18d6-7e42-4f8a-ac24-e902abe76f39",
    "name": "blabla",
    "updatedOn": "2013-09-08T16:34:41.000Z",
    "etag": "esxrdctfvygbuhnij5464df7g8hu",
    "applications": [
      {
        "id": "app001",
        "type": "text/html",
        "src": "http://www.google.com"
      },
      {
        "id": "app002",
        "type": "text/html",
        "src": "http://www.stackoverflow.com"
      }
    ],
    "normalContent": [
      {
        "layout_id": "layout001",
        "layout_name": "layout1",
        "layout_dur": "indefinite",
        "regions": [
          {
            "region_id": "region001",
            "region_name": "regiao1",
            "left": "0",
            "top": "0",
            "width": "0.5",
            "height": "1",
            "minWidth": "0",
            "minHeight": "0",
            "scheduleItem": "container",
            "limitCycle": "1",
            "selector": "seq",
            "containerList": [
              {
                "cid": "app001",
                "dur": "25"
              },
              {
                "cid": "app002",
                "dur": "15"
              }
            ]
          },
          {
            "region_id": "region002",
            "region_name": "regiao2",
            "left": "0.5",
            "top": "0",
            "width": "0.5",
            "height": "1",
            "minWidth": "0",
            "minHeight": "0",
            "scheduleItem": "container",
            "limitCycle": "1",
            "selector": "seq",
            "containerList": [
              {
                "cid": "app002",
                "dur": "15"
              },
              {
                "cid": "app001",
                "dur": "15"
              }
            ]
          }
        ]
      }
    ]
  }
}

だから私はこれを取得し、次を使用してコンテンツをストレージに保存します:

chrome.storage.local.set({playerSchedule:this.schedule}, function(){
    console.log('saved!')       
});

後で、次を使用して保存されたコンテンツを読むとき:

chrome.storage.local.get(["playerSchedule", "playerScheduleType"], function (res) {
    self.currentSchedule = res.playerSchedule;
    self.scheduleType = res.playerScheduleType;
});

これは私が得るものです:

{
  "schedule": {
    "applications": [
      {
        "id": "app001",
        "type": "text/html",
        "src": "http://www.google.com"
      },
      {
        "id": "app002",
        "type": "text/html",
        "src": "http://www.stackoverflow.com"
      }
    ],
    "etag": "esxrdctfvygbuhnij5464df7g8hu",
    "id": "416a18d6-7e42-4f8a-ac24-e902abe76f39",
    "name": "blabla",
    "normalContent": [
      {
        "layout_dur": "indefinite",
        "layout_id": "layout001",
        "layout_name": "layout1",       
        "regions": [
          {
            ...
            "containerList": [
            ]
          },
          {
            ...
            "containerList": [
            ]
          }
        ]
      }
    ],
    "updatedOn": "2013-09-08T16:34:41.000Z"    
  }
}

ご覧のとおり、読んだコンテンツはアルファベット順に表示され、containerList のコンテンツは空です。これが起こっている理由は何ですか?オブジェクトを文字列に変換して保存することでこれを解決しましたが、なぜオブジェクトとして保存するのがオブジェクトとして読み取って得られるのか、それとも何か不足しているのでしょうか?

前もって感謝します。

4

1 に答える 1

1

これはおそらくhttp://code.google.com/p/chromium/issues/detail?id=277647です。Chrome 31 の修正は進行中です。

于 2013-09-11T16:42:00.803 に答える