2017-01-27 55 views
4

相關的Qt文檔應該是this。但它沒有提到QML。然而在網絡上的很多地方,我發現在QML JS中使用了諸如JSON.parse之類的函數。有沒有這樣的功能,我如何使用它?解析QML中的JSON

我只是要求鏈接到文檔,但這被認爲是題外話。

+3

Qt中的文檔說JS相關函數不會成爲Qt文檔的一部分,用戶應該參考ECMAScript文檔。 – DuKes0mE

回答

9

解析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