在 QML 中解析 JSON [重复]

Posted

技术标签:

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

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

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

【问题讨论】:

Qt 中的文档说与 JS 相关的函数不会成为 Qt 文档的一部分,用户应该参考 ECMAScript 文档。 【参考方案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

【讨论】:

以上是关于在 QML 中解析 JSON [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中使用动态键解析 JSON [重复]

使用 Express 框架在 Nodejs 中解析 JSON 请求 [重复]

解析特定的 JSON 结构 [重复]

无法在 Node.js 中解析 JSON [重复]

如何在对象 C 中解析具有多个实例的 JSON [重复]

统一解析json文件[重复]