一 JSON.parseArray()报错com.alibaba.fastjson.JSONException: syntax error, expect [, actual string, pos 0, fieldName null…
语法: JSON.parseArray(String text)
注: JSON.parseArray()方法解析也需要一定的语法控制,
比如: text需要"[“开头,“]”结尾,这表示数组.
如果被转换的String不是"[ ]"中括号开头结尾就会报错.
举例:
public class Test{
public static void main(String[] args) {
String macType ="test";
List<String> contentList = new ArrayList<>();
contentList.add("\"HDC-55\"");
contentList.add("\"HDC-55-1\"");
contentList.add("\"HDC-55-2\"");
contentList.add("\"HDC-55-3\"");
System.out.println(contentList);
//List<String> 转jsonArray
for (String content : contentList) {
try {
JSONArray contentArray = JSONArray.parseArray(content);
System.out.println("contentArray前 : " + contentArray);
if (!contentArray.contains(macType)) {
contentArray.add(macType);
}
System.out.println("contentArray 后 : " + contentArray);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
报错:
解决方案:
将以下:
contentList.add("\"HDC-55\"");
contentList.add("\"HDC-55-1\"");
contentList.add("\"HDC-55-2\"");
contentList.add("\"HDC-55-3\"");
替换成以"[ ]" 开头结尾
contentList.add("[\"HDC-55\"]");
contentList.add("[\"HDC-55-1\"]");
contentList.add("[\"HDC-55-2\"]");
contentList.add("[\"HDC-55-3\"]");
结果: