我遇到了一个问题,如何删除不符合特定参数的元素。例如,我有两个数据类:First和Second。First包含了Second的属性,例如城市、价格等:
data class Properties(val city: String, val day: Int, val month: Int, val yearProp: Int, val dayEnd: Int, val monthEnd: Int, val yearEndProp: Int, val priceFrom: Int, val priceTo: Int)
Item的第二个数据类:
data class Product(var title: String, var price: String, var photoId : String)
我正在使用以下代码从JSON中解析产品数据:
val gson = GsonBuilder().setPrettyPrinting().create()
val inputStream : Reader = context.getResources().openRawResource(R.raw.products).reader()
var productList: ArrayList<Product> = gson.fromJson(inputStream, object : TypeToken<List<Product>>() {}.type)
productList.forEach { println(it) }
这是JSON文件:
[
{
"city": "New York",
"title": "Banana",
"price": "$1,99"
"photoId": "someurl"
},
{
"city": "New York",
"title": "Strawberry",
"price": "$1,99"
"photoId": "someurl"
},
{
"city": "Philadelphia",
"title": "Banana",
"price": "$4,99"
"photoId": "someurl"
}
]
所以,我想要对其进行过滤。如果用户匹配“纽约”,则列表中必须只有“city”:“纽约”的项目。是的,这只是一个例子,请不要注意我写的所有愚蠢:D
或者当我添加它们时就应该过滤项目?但如果是这样,那么该如何操作呢?