: java.util.LinkedHashMap cannot be cast to net.sf.json.JSON]
时间: 2023-09-21 10:08:13 浏览: 184
这个错误是因为你尝试将一个 java.util.LinkedHashMap
类型的对象转换成 net.sf.json.JSON
类型,造成了类型转换错误。
通常情况下,将一个对象转换成 JSON 格式的字符串,可以使用 net.sf.json.JSONObject
或 net.sf.json.JSONArray
类来操作,它们提供了丰富的方法来构建和操作 JSON 对象和数组。
你可以试试下面的代码,使用 JSONObject
将 java.util.LinkedHashMap
类型的对象转换成 JSON 字符串:
import net.sf.json.JSONObject;
import java.util.LinkedHashMap;
import java.util.Map;
public class Demo {
public static void main(String[] args) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("name", "张三");
map.put("age", 18);
JSONObject json = JSONObject.fromObject(map);
System.out.println(json.toString());
}
}
在上面的代码中,我们先使用 LinkedHashMap
创建了一个 Map 对象,然后使用 JSONObject.fromObject()
方法将其转换成 JSON 对象,并使用 toString()
方法将其转换成 JSON 字符串。
输出结果为:
{"name":"张三","age":18}
如果你需要将一个包含多个键值对的对象转换成 JSON 字符串,可以使用 JSONArray
,例如:
import net.sf.json.JSONArray;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class Demo {
public static void main(String[] args) {
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new LinkedHashMap<>();
map1.put("name", "张三");
map1.put("age", 18);
Map<String, Object> map2 = new LinkedHashMap<>();
map2.put("name", "李四");
map2.put("age", 20);
list.add(map1);
list.add(map2);
JSONArray json = JSONArray.fromObject(list);
System.out.println(json.toString());
}
}
在上面的代码中,我们创建了一个包含两个 Map
对象的列表,然后使用 JSONArray.fromObject()
方法将其转换成 JSON 数组,并使用 toString()
方法将其转换成 JSON 字符串。
输出结果为:
[{"name":"张三","age":18},{"name":"李四","age":20}]
相关推荐


















