【问题标题】:Parsing JSON in Cascades在级联中解析 JSON
【发布时间】:2015-07-20 13:10:33
【问题描述】:

我是 Blackberry 开发的新手,但我一直停留在 JSON 解析上。我已经学会了如何在 QML 中调用 Web 服务,但我不知道如何解析我获得的 JSON 结果。谁能帮帮我?

提前谢谢你。

我的实际代码:

Button {
    id: newButton
    horizontalAlignment: HorizontalAlignment.Center
    verticalAlignment: VerticalAlignment.Center
    topMargin: ui.du(3)
    text: "Recharge"
    appearance: ControlAppearance.Primary

    onClicked: {
        getData()
    }
}

function getData() {
    var xmlhttp = new XMLHttpRequest();
    var url = "http://sb2.in/AppServices.asmx/getoperator";

    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            myFunction(xmlhttp.responseText);
            //console.log(xmlhttp.responseText);
        }
    }
    xmlhttp.open("GET", url, true);
    xmlhttp.send();
}

function myFunction(response) {
    var arr = JSON.parse(response);  
    console.log(response);     // (1) 
}

这是我得到的 JSON 响应,打印在 (1) 中:

[{"CircleID":1,"CircleName":"安得拉 Pradesh"},{"CircleID":4,"CircleName":"Assam"},{"CircleID":5,"CircleName":"Bihar"},{"CircleID":6,"CircleName":"Chennai" },{"CircleID":7,"CircleName":"Delhi"},{"CircleID":8,"CircleName":"Gujarat"},{"CircleID":9,"CircleName":"Himachal 邦"},{"CircleID":10,"CircleName":"哈里亚纳邦"}]

如何正确解析这个 JSON 响应?

【问题讨论】:

  • 标记为太宽泛。请阅读how to ask关于 SO 的问题。
  • @BaCaRoZzo 请告诉我如何解析 qml 中的 json!
  • 这取决于返回的响应。但是,您可以按照here 的说明访问字段。如果字段以逗号分隔,请在其上使用 split(',')
  • @BaCaRoZzo 感谢您的回复。我添加了我的 json 响应。我如何解析 json 数组和 json 对象(不同形式的 json)。如果您有任何链接,请评论我。我会学习.....谢谢
  • 我认为this 是您正在寻找的答案。我刚刚在 SO...上搜索了答案...

标签: json qt qml blackberry-10 blackberry-cascades


【解决方案1】:

使用DataSource

在 QML 顶部添加import bb.data 1.0

attachedObjects: [
    DataSource {
      id: dataSource
      source: "http://mywebsite.com"
      type: DataSourceType.Json

      onDataLoaded: {
          //data is already parsed!
          console.log("Data: " + JSON.stringify(data));
      }
   }
]
onCreationCompleted: {
    dataSource.load(); 
}

将此添加到您的 .pro 文件中LIBS += -lbbdata

【讨论】:

    【解决方案2】:

    谢谢@BaCaRoZzo。

    web 服务 & json 解析:

     function getCircle() {
                    var xmlhttp = new XMLHttpRequest();
                    var url = "http://sb2.in/AppServices.asmx/getRecharge";
    
                    xmlhttp.onreadystatechange=function() {
                        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                            circleFunction(xmlhttp.responseText);
    
                        }
                    }
                    xmlhttp.open("GET", url, true);
                    xmlhttp.send();
                }
                function circleFunction(circleresponse){
                    var circle = JSON.parse(circleresponse);  
                    // console.log(circleresponse);// json 
                    for (var k = 0; k< circle.length; k++) {
                        var circles = circle[k];
                        console.log("CircleName"+circles.CircleID);
                        console.log("CircleName"+circles.CircleName);
    
                    }
                }
    

    @BaCaRoZzo 链接:Javascript how to parse JSON array

    【讨论】:

      猜你喜欢
      • 2019-11-25
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 2021-10-22
      • 1970-01-01
      相关资源
      最近更新 更多