使用localStorage中的值访问JSON数据

时间:2016-02-11 16:31:45

标签: javascript json phaser-framework

在网上搜索后没有找到任何东西,我决定在这里发帖。

到目前为止我所拥有的:

  • JS​​ON

我有一个JSON文件,我需要根据用户输入检索几个单词列表。他们看起来像这样:

{
    "length": 10,
    "targetWords": {
        "SOME_NAME": [
            {
                "words": [
               "xyz",
                "xyz",
                "xyz",
                "xyz",
                "xyz",
                "xyz",
                "xyz",
                "xyz",
                "xyz",
                "xyz"
                ]
            },
            {
                "text": "Some example text",
                "letter": "X",
            }
        ],
}
  • localStorage input

我要求用户选择一个选项"记录"在变量中回答。我们称之为" userInput"。

userInput = localStorage.getItem("something")
  • 我获取JSON并将其传递给变量(我使用Phaser Framework)

TARGET_SOUNDS_DATA = this.game.cache.getJSON('targetSounds')

我现在想要的是访问其中的值。如果我这样做,我就能做到:

TARGET_SOUNDS_WORDS_ARRAY = TARGET_SOUNDS_DATA.targetWords.SOME_NAME[0].words

但如果我使用这样的用户回答/输入,则无法这样做:

TARGET_SOUNDS_WORDS_ARRAY =TARGET_SOUNDS_DATA.targetWords.userInput[0].words

这样我只能得到 undefined

所以我知道我做错了什么但是什么?

欢迎任何帮助/提示!谢谢你的时间!

干杯, Ĵ

3 个答案:

答案 0 :(得分:1)

您可以使用方括号选择具有变量

的属性
TARGET_SOUNDS_WORDS_ARRAY = TARGET_SOUNDS_DATA.targetWords[userInput][0].words

答案 1 :(得分:0)

据我所知,也许我错了,localStorage只是键/值存储。您必须将json转换为字符串,存储它,然后检索它并在您想要使用它时将其转换回对象。

答案 2 :(得分:0)

你必须解析它,然后根据userInput获取结果,就像这样

#include "MyComponent.h"

namespace comps
{
    void __fastcall PACKAGE Register()
    {
        TComponentClass classes[1] = {__classid(TMyComponent)};
        RegisterComponents("MyComponents", classes, 0);
    }
}