【问题标题】:Parsing JSON in QML [duplicate]在 QML 中解析 JSON [重复]
【发布时间】:2017-06-13 12:19:21
【问题描述】:

相关的 Qt 文档应该是 this。但它没有提到 QML。然而,在网上的许多地方,我发现在 QML JS 中使用了像 JSON.parse 这样的函数。有没有这样的功能,如何使用?

我只是要求提供文档链接,但这在这里被认为是题外话。

【问题讨论】:

  • Qt 中的文档说与 JS 相关的函数不会成为 Qt 文档的一部分,用户应该参考 ECMAScript 文档。

标签: javascript json qt parsing qml


【解决方案1】:

在 QML 中解析 JSON 与解析 JSON in Javascript 没有什么不同,因为 QML 提供了一个基于 ECMAScript (link) 的环境,并针对 QML 做了一些修改。

所以你可以使用内置的JSON.parse() 函数。在 QML 中可以使用以下示例:

import QtQuick 2.7
import QtQuick.Window 2.2

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Component.onCompleted: {
        var JsonString = '{"a":"A whatever, run","b":"B fore something happens"}';
        var JsonObject= JSON.parse(JsonString);

        //retrieve values from JSON again
        var aString = JsonObject.a;
        var bString = JsonObject.b;

        console.log(aString);
        console.log(bString);
    }
}

这就是为什么 Qt 文档没有说明这个特定功能的原因:

标准的 ECMAScript 内置插件没有在 QML 文档中明确记录。有关其使用的更多信息,请参阅 ECMA-262 第 5 版标准或众多在线 JavaScript 参考和教程网站之一,例如 W3Schools JavaScript 参考(JavaScript 对象参考部分)

Source

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 2016-02-24
    • 2017-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多