簡體   English   中英

Swift 將 object 解析為 JSON object

[英]Swift parse object to JSON object

我正在使用 shopify iOS SDK(mobile-buy-sdk-ios) 在本機反應中獲取登錄用戶的訂單。 這是我的代碼,

let query = Storefront.buildQuery { $0
        .customer(customerAccessToken: token) { $0
          .orders(first: count, reverse: true) { $0
                .edges { $0
                    .node { $0
                      .id()
                      .orderNumber()
                      .totalPrice()
                      .statusUrl()
                      .lineItems(first: 25){ $0
                          .edges{ $0
                              .node{ $0
                                  .title()
                                  .quantity()
                                  .variant{ $0
                                      .id()
                                      .price()
                                      .title()
                                      .image{ $0
                                          .originalSrc()
                                      }
                                  }
                              }
                          }
                      }


    let task  = self.client.queryGraphWith(query, cachePolicy: .networkOnly) { response, error in
     error.debugUserPrint()
     let userOrders = response.customer?.orders.edges[0].node;
     let res = try! JSONSerialization.data(withJSONObject: userOrders)
     completion([res])
}

我在userOrders變量中得到了這個響應

<QueryRoot: ["customer": {
    orders =     {
        edges =         (
                        {
                node =                 {
                    id = "Z2lkOi8vc2hvcGlmeS9PcmRlci8yMjY2NTM3NzU0NzEwP2tleT0zNWFiYzBkMjRmMDk3MjZlYzgzYjkwZDVlZGI5YjM4MA==";
                    lineItems =                     {
                        edges =                         (
                                                        {
                                node =                                 {
                                    quantity = 1;
                                    title = "Gift wrapping";
                                    variant =                                     {
                                        id = "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0VmFyaWFudC8xMjE3MzkzNjYyMzcwMg==";
                                        image =                                         {
                                            originalSrc = "https://cdn.shopify.com/s/files/1/2331/3377/products/Gift_Boxes_11_22_2017_Standard_1024x1024_60d01a1c-f665-4c9e-b80b-f6fda9167de3.jpg?v=1521444032";
                                        };
                                        price = "10.00";
                                        title = "Default Title";
                                    };
                                };
                            }
                        );
                    };
                    orderNumber = 1040;
                    statusUrl = "23313377/orders/11f378e7df2731521429f377015d2ec2/authenticate?key=35abc0d24f09726ec83b90d5edb9b380";
                    totalPrice = "10.00";
                };
            }
        );
    };
}]>)

this formate, so try to parse this data to JSON object to pass data from iOS function to javascript function. 我努力了

JSONSerialization.data(withJSONObject: userOrders)

但它不工作。 我只想將這些數據解析為 JSON。 我也嘗試了許多其他方法,但沒有運氣。

謝謝。

它們是我能想到的多種方式...

  1. Alamofire如果您有權訪問該查詢端點
Alamofire.request("http://feeds.news24.com/articles/Fin24/Tech/rss").responseJSON { json in 
/// do what you want with your json
}
  1. 沒有端點,使用SwiftyJSON
let json = JSON(data: dataFromNetworking)
if let userName = json[0]["user"]["name"].string {
  //Now you got your value
}

我認為沒有直接的方法可以使用 mobile-buy-sdk 獲得 JSON。 但是,您可以將響應轉換為 JSON

if let data = try? JSONSerialization.data(withJSONObject: userOrders.fields, options: .prettyPrinted) {
                print(String(data: data, encoding: .utf8))
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM