[英]Adding data in Firebase realtime database using push() in Android Studio
[英]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.