我有一个带有可选项的RecyclerView。如果选择了一个项目,我会在其JSONObject中添加一个新字段("选择":true)。下面是我从logcat调用的JSONArray(filteredList)。
这是我的filteredList JSON:
[{
"nr": 1,
"grpnr": 0,
"bezeich": "MORE SALT",
"selected": true
}, {
"nr": 2,
"grpnr": 0,
"bezeich": "MORE SWEET"
}, {
"nr": 3,
"grpnr": 0,
"bezeich": "MORE PEPPER"
}, {
"nr": 4,
"grpnr": 0,
"bezeich": "MORE CHILLI",
"selected": true
}, {
"nr": 5,
"grpnr": 0,
"bezeich": "COLD"
}, {
"nr": 6,
"grpnr": 0,
"bezeich": "HOT"
}, {
"nr": 7,
"grpnr": 0,
"bezeich": "SMALL"
}, {
"nr": 8,
"grpnr": 0,
"bezeich": "LARGE"
}, {
"nr": 9,
"grpnr": 0,
"bezeich": "MEDIUM COOKED"
}, {
"nr": 10,
"grpnr": 0,
"bezeich": "WELL DONE"
}]
我想让我的过滤列表JSON看起来像这样(基本上删除所有selected
字段):
[{
"nr": 1,
"grpnr": 0,
"bezeich": "MORE SALT"
}, {
"nr": 2,
"grpnr": 0,
"bezeich": "MORE SWEET"
}, {
"nr": 3,
"grpnr": 0,
"bezeich": "MORE PEPPER"
}, {
"nr": 4,
"grpnr": 0,
"bezeich": "MORE CHILLI"
}, {
"nr": 5,
"grpnr": 0,
"bezeich": "COLD"
}, {
"nr": 6,
"grpnr": 0,
"bezeich": "HOT"
}, {
"nr": 7,
"grpnr": 0,
"bezeich": "SMALL"
}, {
"nr": 8,
"grpnr": 0,
"bezeich": "LARGE"
}, {
"nr": 9,
"grpnr": 0,
"bezeich": "MEDIUM COOKED"
}, {
"nr": 10,
"grpnr": 0,
"bezeich": "WELL DONE"
}]
如我们所见,某些对象具有字段"selected"
。我想知道如何只删除这个字段。我尝试了this和this,但它不适用于我的情况。任何答案都会有所帮助,谢谢!
它不起作用,因为我的CheckBox只删除了最后一个选中的项目。
这是我的代码段:
JSONObject check = new JSONObject();
try {
check = orderList.getJSONObject(intCurrArticleNr);
} catch (JSONException e) {
e.printStackTrace();
}
if(check.has("spesial-request")) {
try {
String arrayRemarkString = check.getString("spesial-request");
if (remarkObj.toString().equalsIgnoreCase(arrayRemarkString)) {
currRemark = new JSONArray(check.getString("spesial-request"));
edt_reqList.setText(currRemark.toString().trim());
System.out.println(currRemark);
}
else {
}
} catch (JSONException e) {
e.printStackTrace();
}
}
else {
// here i have a probelem //
remarkObj = new JSONArray();
// objectReqList.remove("selected");
int len = filteredReqList.length();
JSONArray teslist = new JSONArray();
if (filteredReqList == null) {
for (int i=0;i<len;i++){
filteredReqList.remove(i);
}
}
}
答案 0 :(得分:1)
你可以迭代删除,试试下面 - 它运作正常。
Before --{"selected":true,"nr":1,"grpnr":0,"bezeich":"MORE SALT"}
After --{"nr":1,"grpnr":0,"bezeich":"MORE SALT"}
Before --{"nr":2,"grpnr":0,"bezeich":"MORE SWEET"}
After --{"nr":2,"grpnr":0,"bezeich":"MORE SWEET"}
Before --{"nr":3,"grpnr":0,"bezeich":"MORE PEPPER"}
After --{"nr":3,"grpnr":0,"bezeich":"MORE PEPPER"}
Before --{"selected":true,"nr":4,"grpnr":0,"bezeich":"MORE CHILLI"}
After --{"nr":4,"grpnr":0,"bezeich":"MORE CHILLI"}
Before --{"nr":5,"grpnr":0,"bezeich":"COLD"}
After --{"nr":5,"grpnr":0,"bezeich":"COLD"}
Before --{"nr":6,"grpnr":0,"bezeich":"HOT"}
After --{"nr":6,"grpnr":0,"bezeich":"HOT"}
Before --{"nr":7,"grpnr":0,"bezeich":"SMALL"}
After --{"nr":7,"grpnr":0,"bezeich":"SMALL"}
Before --{"nr":8,"grpnr":0,"bezeich":"LARGE"}
After --{"nr":8,"grpnr":0,"bezeich":"LARGE"}
Before --{"nr":9,"grpnr":0,"bezeich":"MEDIUM COOKED"}
After --{"nr":9,"grpnr":0,"bezeich":"MEDIUM COOKED"}
Before --{"nr":10,"grpnr":0,"bezeich":"WELL DONE"}
After --{"nr":10,"grpnr":0,"bezeich":"WELL DONE"}
Final Output -- [{
"nr": 1,
"grpnr": 0,
"bezeich": "MORE SALT"
}, {
"nr": 2,
"grpnr": 0,
"bezeich": "MORE SWEET"
}, {
"nr": 3,
"grpnr": 0,
"bezeich": "MORE PEPPER"
}, {
"nr": 4,
"grpnr": 0,
"bezeich": "MORE CHILLI"
}, {
"nr": 5,
"grpnr": 0,
"bezeich": "COLD"
}, {
"nr": 6,
"grpnr": 0,
"bezeich": "HOT"
}, {
"nr": 7,
"grpnr": 0,
"bezeich": "SMALL"
}, {
"nr": 8,
"grpnr": 0,
"bezeich": "LARGE"
}, {
"nr": 9,
"grpnr": 0,
"bezeich": "MEDIUM COOKED"
}, {
"nr": 10,
"grpnr": 0,
"bezeich": "WELL DONE"
}]
输出 -
SELECT * FROM login_history WHERE user_id = 1 ORDER BY login_date DESC LIMIT 1
答案 1 :(得分:1)
这应该可以解决问题:
$('.dashboard__block').each(function(i, obj) {
$(this).find("a").click(function() {
// remove classes from all
$("a").removeClass("active");
// add class to the one we clicked
$(this).addClass("active");
});
});