如何将数据库取出的数组结构字符串转换为可操作的数组
处理方案
你拿到的是经过HTML实体转义的JSON数组字符串,"是双引号"的HTML转义形式,按照「还原HTML转义→解析JSON」两步处理即可得到实际数组,不同开发场景的示例如下:
前端 JavaScript 场景
// 示例输入 const rawStr = '["1", "2"]'; // 1. 还原HTML转义(浏览器环境用法,Node环境可替换为对应转义库或直接替换") const jsonStr = new DOMParser().parseFromString(rawStr, 'text/html').documentElement.textContent; // 2. 解析为数组 const targetArr = JSON.parse(jsonStr); console.log(targetArr); // 输出:['1', '2'] // 如需数字类型元素可自行转换:const numArr = targetArr.map(Number) 得到 [1,2]
后端 Python 场景
import html import json raw_str = '["1", "2"]' # 1. 还原HTML转义 json_str = html.unescape(raw_str) # 2. 解析为数组 target_arr = json.loads(json_str) print(target_arr) # 输出:['1', '2']
后端 Java 场景
import org.apache.commons.text.StringEscapeUtils; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import java.util.List; public class ConvertTest { public static void main(String[] args) throws Exception { String rawStr = "["1", "2"]"; // 1. 还原HTML转义 String jsonStr = StringEscapeUtils.unescapeHtml4(rawStr); // 2. 解析为数组 ObjectMapper objectMapper = new ObjectMapper(); List<String> targetArr = objectMapper.readValue(jsonStr, new TypeReference<List<String>>() {}); System.out.println(targetArr); // 输出:[1, 2] } }
注意事项
- 如果字符串中除了
"还存在其他HTML转义字符(如<、&等),禁止使用手动替换的方式处理,务必使用对应语言官方的HTML转义还原方法避免解析异常。
内容的提问来源于stack exchange,提问作者TangoMan
相关产品推荐
相关产品推荐

