0

これは任意の URL http://www.example.com/json.phpJSONからの私のテキストです

カスタマイズされたListViewでモーダルにできるように、このjsonを解析して配列に入れる方法を教えてください。

私は、以前は iOS 開発者だった Blackberry 開発は初めてです。

このリンクを確認しましたが、実行できません。

完全な解決策(例または使用法)がある場合は、私を助けてください。

JSONdeveloper.blackberry.com からのサンプルをダウンロードしましたが、実行できませんでした。

私もこのリンクにその質問を投稿しました

{
    "status": "success",
    "result": [
        {
            "offer_id": "456",
            "member_id": "648",
            "offer_type": "printable",
            "cat_name": "Health & Wellbeing",
            "price": "50",
            "discount": "20% Off.",
            "title": "20% Off",
            "quantity": "200",
            "details": "Enjoy 20% Off any Service.",
            "coupon_code": "45600010106",
            "company_logo": "http://beta/files/offers/logos/",
            "offer_image": "http://beta/files/offers/images/f4d118737e_image_456.jpg",
            "bc_image": "http://beta/files/offers/qrcodes/qrcouponid_45600010106.png",
            "company_address1": "Oud Metha - Mohammed Saeed Hareb Bldg. Opp. American Hospital",
            "company_address2": "Not Available",
            "company_city": "Not Available",
            "company_phone": "04 357 6738 Mob: 509284567",
            "location": "Oud Metha",
            "company_name": "Golden House Gents Spa Club",
            "merchant_name": "Golden House Gents Spa Club",
            "url": "http://google.com",
            "date_end": "2013/12/30",
            "date_start": "2013/07/25",
            "condition": "1. Cannot be Combined with any other offer.\r\n2. Advance booking required.\r\n3. This Voucher must be Mentioned during time of Booking.\r\n4. Not Valid on Thurs & Sat.\r\n5. Expires 31st December 2013.",
            "rating": "0",
            "latitude": "25.2374",
            "longitude": "55.3117"
        }
    ]
}
4

2 に答える 2

3

のドキュメントですべて説明されていますJsonDataAccess。次のようにする必要があります。

// Create a data model with sorting keys for title
GroupDataModel *model =
  new GroupDataModel(QStringList() << "title");

// Load the JSON data
JsonDataAccess jda;
QVariant list = jda.load("yourfile.json")["result"].toVariantList();

// Add the data to the model
model->insertList(list.value<QVariantList>());

// Add your model to a ListView
listView->setDataModel(model);
于 2013-07-30T12:38:18.343 に答える
1

これは QML の方法であり、C++ コードに触れる必要はありません。

まず、QML ファイルでリストビューを作成する必要があります。

ListView {
        id: listData
        dataModel: ArrayDataModel {
            id: theDataModel
        }
        ....
}

ここで、リストビューに json ファイルからのデータを入力します。サーバーに呼び出しを行っているため、リクエストを送信する必要があります。

            function sendRequest() {
                console.log("DEBUG: sending request");
                var request = new XMLHttpRequest();
                request.onreadystatechange = function() {
                    // Need to wait for the DONE state or you'll get errors
                    if (request.readyState === XMLHttpRequest.DONE) {
                        if (request.status === 200) {
                            // if response is JSON you can parse it
                            var response = JSON.parse(request.responseText);

                                theDataModel.append({
                                    "offer_id": response.result.offer_id,
                                    "member_id": response.result.member_id,
                                    "offer_type": response.result.offer_type
                                });
                            }

                    } else {
                            // Error
                            console.log("DEBUG: Status: " + request.status + ", Status Text: " + request.statusText);                       
                    }
                }
                // POST/GET request
                request.open("GET", "http://www.example.com/json.php", true); 
                request.setRequestHeader("Accept", "application/json");
                request.send();
            }

値を表示するには、次を使用できますStandardListItem

StandardListItem {
                    title: ListItemData.offer_id
                    description: ListItemData.offer_type
                    status: ListItemData.member_id
                }
于 2013-07-30T16:04:16.123 に答える