QML и JSON: доступ к полю, указанному в переменной

0

Вопрос

Мне нужен доступ к строке Json внутри моего qml-кода, теперь, если поле известно, это легко.

Дано {"c1":320, "c2":256, "c3":128}

Я могу

function getC1(jsonstr)
{
   const obj = JSON.parse(jsonstr);
   return obj.c1;
}

Но что, если я заранее не знаю, к какому полю обращаться, и у меня есть оно в переменной.

например, синтаксисы obj["c1"] или obj[переменная] не работают. Есть ли способ?

javascript json qml qt
2021-10-26 07:31:22
1

Лучший ответ

0

Я не согласен с вашим утверждением, что те другие методы, которые вы пробовали, не работают. Вот что я сделал:

    property string json: '{"c1":320, "c2":256, "c3":128}'

    function getC1(jsonstr)
    {
        const obj = JSON.parse(jsonstr);
        const key = "c1";
        console.log(obj.c1);
        console.log(obj["c1"]);
        console.log(obj[key]);
    }

    Component.onCompleted:
    {
        getC1(json);
    }

И вот результат:

qml: 320
qml: 320
qml: 320

Таким образом, все 3 метода дают желаемый результат.

2021-10-26 14:01:41

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................