"check_list": "[{maintenanceName=月保养1, value=OK, remark=无, edit_username=admin}, {maintenanceName=月保养2, value=OK, remark=无, edit_username=admin}]",
怎么把这种格式转换成list
0:{maintenanceName=月保养1, value=OK, remark=无, edit_username=admin}
1:{maintenanceName=月保养2, value=OK, remark=无, edit_username=admin}
该回答引用chatgpt:
用json格式化
public class MaintenanceItem {
private String maintenanceName;
private String value;
private String remark;
private String edit_username;
// 添加相应的getter和setter方法
}
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
// JSON字符串
String json = "[{maintenanceName=月保养1, value=OK, remark=无, edit_username=admin}, {maintenanceName=月保养2, value=OK, remark=无, edit_username=admin}]";
// 解析JSON字符串为JSONArray
JSONArray jsonArray = JSON.parseArray(json);
// 遍历JSONArray并将每个JSON对象转换为Java对象
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
MaintenanceItem item = JSON.toJavaObject(jsonObject, MaintenanceItem.class);
System.out.println(i + ": " + item);
}
该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下,以下是Java和JavaScript的实现方法:
Java实现方法:
String check_list = "[{maintenanceName=月保养1, value=OK, remark=无, edit_username=admin}, {maintenanceName=月保养2, value=OK, remark=无, edit_username=admin}]";
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Pattern pattern = Pattern.compile("\\{([^\\{\\}]+)\\}");
Matcher matcher = pattern.matcher(check_list);
while (matcher.find()) {
String[] keyValuePairs = matcher.group(1).split(", ");
Map<String, String> map = new HashMap<String, String>();
for (String pair : keyValuePairs) {
String[] entry = pair.split("=");
map.put(entry[0], entry[1]);
}
list.add(map);
}
System.out.println(list);
JavaScript实现方法:
var check_list = "[{maintenanceName=月保养1, value=OK, remark=无, edit_username=admin}, {maintenanceName=月保养2, value=OK, remark=无, edit_username=admin}]";
var list = [];
var pattern = /\{([^{}]+)\}/g;
var matches = check_list.match(pattern);
for (var i = 0; i < matches.length; i++) {
var keyValuePairs = matches[i].substr(1, matches[i].length - 2).split(", ");
var map = {};
for (var j = 0; j < keyValuePairs.length; j++) {
var entry = keyValuePairs[j].split("=");
map[entry[0]] = entry[1];
}
list.push(map);
}
console.log(list);
以上代码中,使用正则表达式匹配字符串中的每个键值对,然后将其转换为Map或对象,再将其添加到List中。最终输出的List包含两个Map或对象,分别表示两个月保养项。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢