代码之家  ›  专栏  ›  技术社区  ›  kartheeki j

在级联中解析JSON

  •  0
  • kartheeki j  · 技术社区  · 10 年前

    我是黑莓开发的新手,我一直专注于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”:“Andhra Pradesh“},{“CircleID”:4,“CircleName”:“Assam”},{”CircleID“:5,”CircleName“:”Bihar“},”Circle ID“:6,“Circle Name”:”Chennai“}、”CircleID“:7,”CircularName“:“Delhi”}、{”CircleID“8,”Circular Name“::”古吉拉特邦“}”,{ Pradesh“},{“CircleID”:10,“CircleName”:“Haryana”}]

    如何正确解析此JSON响应?

    2 回复  |  直到 10 年前
        1
  •  1
  •   Bojan Kogoj    10 年前

    使用 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
  •  1
  •   Community CDub    8 年前

    谢谢您@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