字符串转换成list

"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或对象,分别表示两个月保养项。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢