簡體   English   中英

Android - 將字符串轉換為列表以推送到 Firebase 實時數據庫

[英]Android - Converting string to list to push to firebase realtime database

有沒有辦法將下面的字符串轉換為列表? 掃描二維碼后檢索此字符串。

CashRequest{
    orderid='0',
    user_id='nvHt2U5RnqUwXB4ZK37Zn1DXPV82',
    userName='username',
    userEmail='whateveremailthisis@email.blabla',
    fullName='full name',
    phoneNumber=0,
    totalCash='$304.00',
    totalRV='$34.00', 

    foods=[
        Order{
            userID='nvHt2U5RnqUwXB4ZK37Zn1DXPV82',
            ProductID='-LMDiT7klgoXU8bQEM-4',
            ProductName='Coke',
            Quantity='4',
            Price='1',
            RedemptionPrice='10',
            RedemptionValue='1'},
        Order{
            userID='nvHt2U5RnqUwXB4ZK37Zn1DXPV82',
            ProductID='1000',
            ProductName='Kunau Ring Ring Pradu',
            Quantity='3',
            Price='100',
            RedemptionPrice='10',
            RedemptionValue='10'
        }
    ]
}

所需的輸出是將其存儲在 firebase 實時數據庫中,如下所示:

在此處輸入圖片說明

那么你有幾個選擇。 由於它是值之間的換行符,您可以使用簡單的換行符讀取並比較它是否以“您正在尋找的保留字”開頭,然后是從那里開始的子字符串,但這可能會變得混亂和大量膨脹代碼。

最簡單的方法是先進行已知的替換。 制作一個方法,用引號包圍的 json 鍵替換所有壞的 json 鍵,例如:

 val myJsonCorrected = yourStringAbove.replace("Order", "\"Order"\")

對所有已知實體重復,直到將其轉換為有效的 json。 單個刻度對值來說很好,但鍵也需要引號。

然后簡單地創建一個與 json 格式匹配的對象。

class CashRequestModel{
      @SerializableName("orderid")
      var orderID: Int? = null
      etc.....
      @SerializableName("foods")
      var myFoods: ArrayList<OrderModel>? = null
}

class OrderMode {
     @SerializableName("userID")
     var userID: String? = null
     @SerializableName("ProductID")
     var userID: String? = null
     etc..
}

然后只需將其轉換為 JSON

val cashRequest = getGson().fromJson(cleanedUpJson, classTypeForCashRequest);

和你的完成。 現在只需使用列表。 當然,如果您無需先清理即可獲得有效的 JSON 會更好,但看起來鍵是已知的,並且您可以輕松地編寫字符串替換代碼以修復錯誤的 json,然后再將其轉換為與結構匹配的對象。

希望有幫助。

暫無
暫無

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

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